Hola a todos. Otra vez estpoy aquí.
Mi pregunta es la siguiente:
Tengo un TDBGrid conectado a un Adodc y este Adodc se alimenta de un recordset que tiene 4 columnas. Esto funciona sin problema alguno.
Realizo búsquedas en el recordset tambien sin problemas, pero (y aquí viene el pero) no sé como hacer para que el puntero del TDBGrid se mueva al registro encontrado en el recordset o al más próximo a éste.
Es decir, realizo la búsqueda pero el TDBGrid permanece estático y siempre muestra lo mismo, y ello a pesar de que al finalizar la búsqueda "refresco" tamto el TDBGrid como el Adodc.
Pongo el código utilizado a ver si en contrais el fallo:
Dim plato As New ADODB.Recordset
csql = "SELECT idCarta, Descripcion, Precio FROM Carta WHERE activo=true ORDER BY Descripcion"
Adodc2.RecordSource = csql
Adodc2.Refresh
TDBGrid2.DataSource = Adodc2
TDBGrid2.Refresh
Set plato = Nothing
'plato es el recordset
'csql es la consulta que alimenta al recordset
'cn es la cadena de conexión
'txtbuscador es un TextBox en el que se recoge el dato a buscar
plato.Open csql, cn, adOpenDynamic, adLockOptimistic
plato.MoveFirst
plato.Find ("descripcion = '" & Trim(Me.txtBuscador.Text) & "'")
If Not plato.EOF Then
MsgBox plato!idCarta & " - " & plato!Descripcion & " - " & plato!Precio
Else
MsgBox "No se encontraron registros"
End If
'Ultimamente he añadido estas líneas por ver si me refescaba la rejilla, pero sigue sin funcionar.
plato.Requery
Adodc2.Refresh
TDBGrid2.Refresh
En cuanto al resultado de la búsqueda ya os digo que funciona sin problemas, pero no sé como decirle que mueva el puntero del TDBGrid para que me muestre en la rejilla el valor encontrado.
No sé si me he explicado bien.