Problema con VB6 contra Access2000 y el operador LIKE

marc9000
08 de Julio del 2004
Estoy haciendo una aplicación en Visual Basic 6 que ataca a una BD en Access 2000.

Las conexiones a la Base de Datos las hago de la siguiente manera:

Dim bd As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSelect as String

StrSelect = ”Select * from cliente”
bd.Provider = "Microsoft.Jet.OLEDB.4.0"
bd.Open RutaBD
rs.Open strSelect, bd, adOpenForwardOnly, adLockOptimistic
If rs.BOF and rs.EOF Then
<sentencias>
Else
<sentencias>
End If

rs.Close
Set rs = Nothing
bd.Close
Set bd = Nothing

Pero tengo un problema con las Select que contienen comparaciones con el operador Like. Me explico:

CLIENTE
Codigo Nombre
1 Marc
2 Mark

Si hago Select * from cliente where cliente.nombre like “Marc” funciona.
Pero si hago Select * from cliente where cliente.nombre like “M*” no funciona.
Ni tampoco Select * from cliente where cliente.nombre like “Mar?”.

Por otro lado si hago la consulta con el Assistente de Access, el resultado es correcto. Pero si copio la linia SQL que crea éste al VB sigue sin funcionar. Por eso mi problema creo que esta solo en el uso de los comodines * ?.

No es problema ortogràfico ya que substituyo comillas por chr(34) y el * por chr(42) y compruebo la sentencia strSelect con un MsgBox antes de abrir el recordset y esta bien escrita.

Me puedes ayudar? Yo no le veo solución.

Rodolfo Reyes
08 de Julio del 2004
Prueba utilizando % en vez de *

Noelia
08 de Julio del 2004
Para ? prueba con _ (guión bajo) a ver si t funciona.