Sobre ADO

Mi nombre es Javier y llevo un par de años programando con VB.
El caso es que estoy teniendo un problema en el desarrollo de una aplicación con VB, Access y ADO que no sé cómo resolver...
Lo que ocurre es que utilizo un Recordset de ADO (ADODB. Recordset) para abrir consultas (SQL) a una BD Access.
Hasta aquí todo funciona perfectamente, el problema es que cuando intento abrir una consulta que contenga la palabra 'LIKE', el recordset que me devuelve está vacío.
He probado la consulta directamente en Access y funciona bien, e incluso funcionan las consultas que tienen 'NOT LIKE', pero no las otras.
Esto ocurre desde VB6 y también en VBA (desde Excel 2002, por ejemplo).
No tengo ni idea de qué puede pasar (aparte de un bug del motor Jet o algo así) ¿Tienes alguna idea de qué puede estar pasando?

1 Respuesta

Respuesta
1
Instala, en mi consideración, el último service pack de visual basic, 5.0 o el 6.0, y para el JETENGINE de access, verifica que utilices el correspondiente a la versión 3.50 para access 2000 y anteriores, el 3.51 para superiores o el 4.0 para XP.
Buenos días, David,
ante todo, gracias por contestar y en tan poco tiempo :)
Sin embargo, te comento que tengo las últimas versiones del Jet y el SP6 instalados.
Además, quisiera hacer una corrección sobre mi anterior mensaje, y es que daba a entender que tenía problemas con sentencias SQL que incluían la palabra LIKE, pero las que incluyen NOT LIKE funcionan... En realidad, tampoco funcionan. Lo que quise decir es que el recordset que devuelven no está vacío, pero el filtrado de registros no es correcto.
En otras palabras, me da la impresión de que al usar una cadena con asterisco (algo como LIKE "abcd*") está interpretando el asterisco como parte de la cadena, y no como un comodín. Por eso devuelve un RS vacío para el LIKE y la tabla completa para NOT LIKE.
Donde sí funciona bien es cuando NO utilizo el asterisco (LIKE "abc" o NOT LIKE "abc" sí que funcionan bien)
Volviendo al tema de las versiones, hasta ahora he probado en 2 ordenadores distintos y en los 2 pasa lo mismo.
Los 2 tienen Windows XP, pero en uno trabajo con VB6 + Jet4 y Access 2000, y en el otro tengo el Office XP (trabajando desde Excel con VBA, el Jet4 viene con Access XP, ¿no?).
¿Puede ser un problema de compatibilidad del Jet con las versiones en español de Windows o Access?
¿Hay algún carácter equivalente al asterisco en el SQL del Jet?
Bueno, gracias de nuevo por tu atención.
Saludos.
Bien, parece que al final he conseguido solucionarlo: al utilizar el proveedor OLEDB para Jet 4, hay que usar el carácter '%' en lugar del asterisco como comodín en las consultas.
Una vez más, gracias por tu tiempo y disculpa las molestias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas