Actualización de datos en un control adodc

Quisiera me ayudaran a solucionar el siguiente problema (me imagino debe ser sencillo resolverlo)
Tengo un formulario con un control DATAGRID.
Tengo también un control ADODC el cual obtiene datos de dos tablas relacionadas (uno a varios) y se enlaza
Con el DATAGRID, para que este muestre los datos.
Ahora bien, tengo un BOTÓN "Eliminar", para eliminar en el evento CLICK registros de solo una de las tablas (lógicamente, no puedo eliminar desde el anterior ADODC, pues obtiene datos de dos tablas).
Para eliminar datos uso una variable (no un objeto en un formulario) definida como:
Public rs As Recordset
Que me borra de la base de datos los datos que yo deseo.
Inmediatamente hago un refresh en los otros controles, para que se hagan visibles los cambios, pero los cambios no se hacen visibles.
En cambio, si desde otro botón hago un refresh si se muestran los cambios.
Quisiera me indicaran como desde el mismo evento CLICK, luego de borrar los datos, puedo indicarle a los otros controles que ya he borrado los datos, o si existe otro método, evidentemente más eficiente, para lograr eliminar registros y hacer visibles los cambios.

1 Respuesta

Respuesta
Lo más apropiado es utilizar el comando REQUERY, que está dentro del ADODC y después hacer un refresh en el DATAGRID.
Una forma para llamar un EVENTO desde cualquier parte es colocando el nombre del botón junto con el nombre del evento por ejemplo:
elimina_click()
Julius
Me parece que hay algo en mi código que esta mal.
Te envío el código del evento eliminar y que no me funciona, por favor mostrame lo que esta mal
y como lo modificarías para que funcione.
db apunta a una base de datos,
AdoDCTipoImagen obtiene datos de dos tablas,
DGridTipoImagen se enlaza con AdoDCTipoImagen para mostrar los datos.
Private Sub cmdEliminar_Click()
On Error GoTo MANEJADOR_DE_ERROR
' Crear el recordset con la tabla que queremos eliminar
'indice 0=IDTipoImagen, 3=Prioridad
instruccionSQL = "select * from TIPO_de_IMAGEN where IDTipoImagen=" & DGridTipoImagen.Columns(0) & " and NivelPrioridad=" & DGridTipoImagen.Columns(3)
Set rs = db.OpenRecordset(instruccionSQL, dbOpenDynaset)
rs.Delete
rs.Close
AdoDCTipoImagen.Refresh
DGridTipoImagen.Refresh
Exit Sub
MANEJADOR_DE_ERROR:
MsgBox Err.Description, , "Error No. " & Err.Number
End Sub
Donde pondrías el REQUERY y Como.
No estoy seguro, no tengo VB acá en este momento.. pero seria de cambiar la linea que dice AdoDCTipoimagen. Refresh por
AdoDCTipoimagen. Requery
Y después ya un DgridTipoImagen. Refresh.
Julius

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas