Consulta con LIKE

Trabajo con Visual Basic. Tengo dos tablas, 'nodos' y 'datos', están relacionadas por el campo 'ID', uso esta cadena para buscar en la base de datos el contenido de txtbus.text, el resultado es que selecciona todos los IDs disponibles, aún cuando su campo fichero no contiene el contenido de 'txtbus.text', con que al menos uno de los IDs lo contenga los selecciona todos : (
StrSql = "SELECT Datos.Id,Fichero,Fecha,Comentarios FROM nodos,datos WHERE " & _
"fichero LIKE '%" & TxtBus.Text & "%' ORDER BY datos.Id"
La forma de hacer la consulta es:
RstBus.Open StrSql, cnx, adOpenStatic, adLockOptimistic, adCmdText
¿tienen algo que ver adOpenStatic, adLockOptimistic, adCmdText? ¿Son los '%'?
Gracias. [email protected]

1 respuesta

Respuesta
1
Haces una consulta de dos tablas sin unirlas por ningún campo, con lo que consigues un producto cartesiano, esto es, por cada fila de una de las tablas, recuperas el contenido de todas las filas de la otra tabla.
Para solucionarlo, antes de ORDER BY coloca el siguiente texto:
AND nodos.Id = datos.Id
con lo que te quedaría:
StrSql = "SELECT Datos.Id,Fichero,Fecha,Comentarios FROM nodos,datos WHERE " & _
"fichero LIKE '%" & TxtBus.Text & "%' AND nodos.Id = datos.Id ORDER BY datos.Id"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas