Access - Query que no funciona en ADO

 
Vista:

Query que no funciona en ADO

Publicado por Carrington (6 intervenciones) el 11/04/2007 23:47:07
Saludos:

Me pasa una cosa curiosa que no sé cómo solucionar, y me da rabia, porque en teoría es algo sencillo.En concreto, tenemos un listado de centros educativos. Dos tablas: Códigos de los centros y demás datos del centro.

Tabla Centros Tabla Codigos_centros
IDCentro
IDCodigo ------------------------ IDCodigo
Centro Codigo
|
|
|

Formulario de búsqueda mediante cuadro de texto.

La query es bastante habitual:

"SELECT Centros.IDCentro, Centros.Centro, Codigos_centros.Codigo FROM Centros INNER JOIN Codigos_centros ON Centros.IDCodigo = Codigos_centros.IDCodigo WHERE Centros.Centro LIKE '*" & txtBusqueda.Text & "*' ORDER BY Codigos_centros.Codigo, Centros.Centro"

Bueno, pues el recordset me devuelve siempre 0 registros.

Es curioso el caso porque pegando la consulta en el asistente de Access la consulta me la hace sin problemas (sustituyendo txtBusqueda.Text por la palabra clave en cuestión, claro).

Tras varios intentos, el problema parece estar en la sintaxis de la condición WHERE. Si la elimino, me da todos los registros, pero al poner la condición surge de nuevo el problema
apareciendo siempre rsMain.RecordCount=0

He probado a cambiar la sintaxis -como hace Access- con tres paréntesis:
WHERE (((Centros.Centro) = '*emi*'))
pero tampoco.

No creo que sea problema de ADO porque ya he dicho que sin la condición sí devuelve registros.

Aún así, os pego el código:

Set rsMain= New ADODB.Recordset

rsMain.CursorType = adOpenKeyset
rsMain.LockType = adLockPessimistic

rsMain.Open stSQL, CurrentProject.Connection

En fin, a ver si podéis lanzar alguna luz sobre el asunto.

Gracias adelantadas
Carrington
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

RE:Query que no funciona en ADO

Publicado por Cristian Vasquez (47 intervenciones) el 12/04/2007 00:49:57
Viejo yo creo que tiene razon el problema se encuentra en la condicion where, lo que yo haría para solucionar el problema seria asignarle a una variable todo el texto que comparara la clausula LIKE incluidas las comillas y analizaria como me quedan las comillas porque dentro de la cadena SQL los textos especificos deben de quedar entre comillas pero al escribir una cadena en Visual ya se han utiizado, lo que yo con mis sql es esto=

Cadena = Chr(34) & "texto a comparar" & Chr(34)

SQL= "select * from tabla1 where campo1 like " & Cadena

puedes abreviarlo a tu gusto, asi he trabajado yo y ya no tengo problemas con las comillas.

espero que te sirva.
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

RE:Query que no funciona en ADO

Publicado por Chea (1015 intervenciones) el 12/04/2007 12:18:05
Prueba a sustituir los comodines * por %

Saludos
José Bengoechea Ibaceta
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