• Domingo 22 de Diciembre de 2024, 19:32

Autor Tema:  Búsquedas Con Ado  (Leído 1652 veces)

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Búsquedas Con Ado
« en: Martes 27 de Enero de 2004, 09:08 »
0
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.

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Búsquedas Con Ado
« Respuesta #1 en: Martes 27 de Enero de 2004, 16:02 »
0
Como el DBgrid lo muestra = uqe sale en el recordset (o sea si no usas Sort) podes directamente tomar la posicion del recordset+1 como posicion de la fila y marcarla.
QliX=D! - From the top of Tsunami