Visual Basic - ¿Cómo buscar en una base de datos Access con ADODB?

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

¿Cómo buscar en una base de datos Access con ADODB?

Publicado por Pablo (7 intervenciones) el 09/07/2015 04:11:55
Muy buenas gente, soy nuevo en este foro y me gustaría ser un usuario activo (dependiendo de la actividad de este post)

Mi duda va en, ¿cómo hago para que en una búsqueda con este código...


Set Busqueda = New ADODB.Recordset
Busqueda.CursorLocation = adUseClient
Busqueda.Open "SELECT * FROM Prestaciones WHERE Nombre_Apellido = '" & txtBusqP.Text & "'", conexion, adOpenStatic, adLockOptimistic 'conexion es el New ADODB.Connection y txtBusqP es el textbox donde ingreso lo que quiero buscar, prestaciones es la tabla y nombre_apellido la fila en donde quiero buscar
Set DataGrid1.DataSource = Busqueda

...busque por letra? Es decir, si existe un valor llamado "Pablo Heredia" y yo en el textbox puse "Pablo" quisiera que muestre todos los "Pablo" que existen en la tabla, es más si aún pongo Pa, quiero que muestre todos los que comienzan con "Pa" en la fila Nombre_Apellido de la tabla Prestaciones.... Por que si ahora mismo pongo Pablo no aparece nada, debo poner "Pablo Heredia" para que así muestre a todos los de ese nombre...

Agradezco al foro por existir que me ha sacado algunas dudas desde que lo conozco. Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 21
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

¿Cómo buscar en una base de datos Access con ADODB?

Publicado por Rafael (68 intervenciones) el 09/07/2015 09:42:44
A ver el problema esta en el concepto

Tu estas poniendo que te busque aquello que sea IGUAL
Y lo que necesitas es que busque aquello que sea PARECIDO A

Bueno pues entonces si ahora entendemos el concepto vemos que el operador usado NO ES CORRECTO

Lo que deberias usar es un LIKE
Y como siempre este operador tiene algunas acepciones:
Que empiece con
Que termine con
O que en cualquier parte de la cadena se parezca a

Y esto significa usar comodines que en el caso de Access 2003 permite *, ?, # el mas usado desde versiones anteriores es *

Dicho lo cual tu cadena deberia quedar asi:

Partiendo de la idea de que "Pablo" es un valor capturado en el campo de texto ...

Si quieres que te encuentre lo que empiece con "Pablo":
1
Busqueda.Open "SELECT * FROM Prestaciones WHERE Nombre_Apellido LIKE '" & txtBusqP.Text & "*'", conexion, adOpenStatic, adLockOptimistic

Si quieres que te encuentre lo que termine con "Pablo":
1
Busqueda.Open "SELECT * FROM Prestaciones WHERE Nombre_Apellido LIKE '*" & txtBusqP.Text & "'", conexion, adOpenStatic, adLockOptimistic

Si quieres que te encuentre lo que contenga "Pablo":
1
Busqueda.Open "SELECT * FROM Prestaciones WHERE Nombre_Apellido LIKE '*" & txtBusqP.Text & "*'", conexion, adOpenStatic, adLockOptimistic

Ya sabras tu como quieres la consulta...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

¿Cómo buscar en una base de datos Access con ADODB?

Publicado por Pablo (7 intervenciones) el 09/07/2015 16:24:09
Muchisimas gracias Rafael me ayudaste muchísimo... Saludos, tema resuelto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar