Consulta de código en visual basic comparando con el operador LIKE

Le escribo para hacerle la siguiente pregunta:
Quiero hacer una consulta utilizando LIKE y no se como hacerla, a continuación le escribo el código y la duda
Private Sub txtapellido_KeyPress(KeyAscii As Integer)
cadena = (cadena) + Chr(KeyAscii)
Set rec = db1.OpenRecordset("SELECT apellido,nombre,razsoc,telefono FROM cliente WHERE apellido LIKE " & cadena & ";", dbOpenDynaset)
End Sub
En el evento que quiero utilizar esto es el evento KeyPress, lo que quiero hacer es buscar todo los campos donde el apellido empiece con el contenido de la variable cadena y mi duda es como utilizar el LIKE, le aclaro que rec es un recordset y así como esta me da un error de demasiados pocos parámetros,
espero que me lo pueda solucionar
gracias
martin

1 respuesta

Respuesta
1
El uso de like es el siguiente:
'Si deseas localizar los registros con apellido que empiece por una cadena.
Set rec = db1.OpenRecordset("SELECT apellido,nombre,razsoc,telefono FROM cliente WHERE apellido LIKE '" & cadena & "%'", dbOpenDynaset)
'Que acabe en dicha cadena
Set rec = db1.OpenRecordset("SELECT apellido,nombre,razsoc,telefono FROM cliente WHERE apellido LIKE '%" & cadena & "'", dbOpenDynaset)
'Que coincida exactamente con la cadenaSet rec = db1.OpenRecordset("SELECT apellido,nombre,razsoc,telefono FROM cliente WHERE apellido LIKE '" & cadena & "'", dbOpenDynaset)
Como ves lo importante es que para comparar una campo tipo texto con una cadena esta debe estar entre ''.
Seguramente el error sea debido a las '', si no es así comprueba que los nombre de los campos, un campo con varias palabras en el nombre debe ir entre [] (ej: SELECT [Codigo Postal], Localidad FROM Clientes).
Pruébalo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas