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.