Hola
Yo resolví ese problema de la siguiente forma:
a) creas un textbox donde podrás escribir. Aquí escribirás lo que quieres buscar.
b) al lado del textbox pones un botón para buscar el siguiente si resulta que el que has encontrano no era el que querías
c) pones un dbgrid enlazado a un data que tiene los datos que deseas consultar. Este recordset es de solo lectura.
d)Este dbgrid tiene cambiado markeestyle de floateditor por highlightrow
e)el código que tienes en el textbox es (suponiendo que quieres buscar por nombre)
Con esto buscas el primer registro que cumpla. Cuando escribes una letra se busca el primer registro que cumpla.
sub text1_change()
data1.recordset findfirst "nombre like '*" & text1 & "'"
end sub
Código del command
sub command1_click()
if text1<>"" then
data1.recordset.findnext "nombre like '*" & text1 & "'"
endif
end sub
Lo que ocurrirá es que según vas pulsando teclas, se va buscando el primer registro que cumpla lo escrito. Si quieres al pinchar en el botón te busca el siguiente. Como el dbgrid (o datagrid si empleas adodc) tiene puesto el marqueestyle a highlight row sucede que según vas escribiendo se va buscando, el registro se va seleccionando y se ilumina.
Luego yo tengo puesto que al darle doble click al registro seleccionado te salga un menú con lo que deseas hacer (verlo, imprimirlo, borrarlo, modificarlo, etc), pero esa es otra historia.
Para que te hagas una idea yo tengo puesto eso en un programa donde el recordset tiene mas de 100.000 registros y la búsqueda es prácticamente instantánea.
Un saludo