Problemas con Refresh y bloqueos en Visual Basic

Tengo un dbgrid ligado a un data control. En un momento de la aplicación hago lo siguiente :
texto = "select fecha as [Fecha Acuerdo], nombre as Organo, " _
& " descripcion as Contenido, codOrgano from AcuerdosCorp inner join Organos " _ & " on acuerdoscorp.codorgano=organos.codigo where codbien=" & codbien
data.RecordSource = texto
data.Refresh
El problema es que la tabla AcuerdosCorp (y Órganos) se queda bloqueada al hacer el refresh, ya que cuando posteriormente intento abrirla de forma exclusiva para insertar nuevos registros me da el mensaje de "Tabla abierta por...".
¿Cómo puedo actualizar el dbgrid con los datos obtenidos de la consulta de tal forma que la tabla quede cerrada? (Necesitaría seguir utilizando el data control). ¿Cómo puedo cerrar ese data control?
1

1 respuesta

Respuesta
1
La tabla está bloqueada mientras no cierres la consulta com muy buen criterio porque si como dices pretendes añadir más registros, que esperas que ocurra, ¿Qué se actualice también el resultado de la consulta si es que es afectado por los nuevos registros?
Yo haría lo siguiente:
En el Data de la consulta pon
La propiedad RecorsedTipe a "2-Snapshot". Probablemento esto te permitirá desbloquear la tabla, aunque no se actualizará automáticamente. Tendrás que hacerlo ejecutando un refresh al actualizar la tabla de acuerdos.
Vale, he puesto Data.RecordsetType=2 (snapshot) antes de que se cree el recordset, y me ocurre lo siguiente: si al dbgrid le quito la propiedad datasource (ligada al data) la tabla se desbloquea perfectamente como me has indicado, pero si le dejo el datasource la tabla sigue quedando bloqueada.
Muchas gracias por tu interés.
Me alegro de que hayas resuelto el problema
Cierra la pregunta
En realidad no he resuelto el problema, porque como te indico si dejo el datasource del dbgrid ligado al data (que es lo que quiero para mostrar los datos de la consulta) la tabla sigue bloqueada... Así que, no sé cómo solucionarlo.
Bueno, espero no molestarte mucho... si no, me lo dices y cierro. Gracias.
Creí que lo dabas por resuelto. En realidad si lo que quieres es que automáticamente se te actualice la consulta si tu cambias la tabla origen no lo vas a conseguir nunca.
Lo que tienes que hacer es desconectar el grid como haces ahora y una vez que hayas actualizado la tabla, volver a refrescar la consulta haciendo de nuevo el enlace al grid y haciendo un Refresh

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas