La Web del Programador: Comunidad de Programadores
 
    Pregunta:  895 - DUDAS SOBRE ODBC
Autor:  Luis Prieto
Estoy trabajando en V.Basic 5.0 sobre odbc conexion con access, y necesitaria saber como buscar registros en los recordset de tipo odbc, ya que no es posible buscar con los metodos tradicionales como "findfirst"... que puedo hacer??? de ante mano muchisimas gracias...

  Respuesta:  Carlos galvan
Hola, es muy facil realizar busquedas de registros. Primero es No manejar los famosos DataControl. Si no los manejas se te hara muy sencillo.

Primero tienes que realizar la coneccion a la base de datos.
En la funcion main del modulo realizas la conexion. ya realizada simplemete tienes que realizar un Query. como este

set Rs= cn.execute( "Select Nombre from Socio where Edad > 24" )
En este ejemplo se esta tomando un ejemplo de una taba de socio que estan inscritos en una caja de ahorro. Ahora, se esta buscando los nombres de los socios que sean mayores a 24 años. Pero si deseas mas concreta la busqueda

set Rs= cn.execute( "Select Edad, Ahorro from Socio where Nombre =juan " )
Se tiene esta consulta la cual regresa los datos de un socio en especifica. solamente tienes que especificarle que nombre deseas buscar.

Con esto puedes hacer busquedas personalizadas. Si tienes alguna duda, escribeme y te puedo dar una mayor explicacion.

  Respuesta:  Jose Luis
Creo que lo que quieres es buscar un registro por su contenido. La forma más sencilla que conozco es moverte al principio de la tabla (Movefirst), y luego ir abanzando y comprobando si el contenido es el que esperas que sea. Para avanzar por la tabla registro a registro debes usar Movenext. Si metes esto en un bucle, te llevará hasta el final de la tabla o hasta donde tu le marques. Para saber si has llegado comprueba si la propiedad EOF está a true. Esto significa que estás al final(sal del bucle).

Lo más rápido sería incluir una condición de búsqueda de tipo SQL al abrir el recordset, por ejemplo...

Set rs = cn.OpenRecordset("Select (Nombre de los campos) from (nombre de la tabla) where (condiciones de búsqueda)" , rdOpenStatic, rdConcurReadOnly, rdExecDirect)
Espero que te resuelva el problema. Un saludo.