PROBLEMA AL ESCRIBIR UNA CONSULTA
Tengo un problema con una consulta, es la siguiente:
SELECT p.Nombre FROM Planta p WHERE p.PlantaID IN(
SELECT pu.PlantaID FROM [Planta-Usuarios] pu WHERE pu.DNI=(
SELECT u.DNI
FROM USUARIOS u
WHERE u.NombreUsuario="estela" and u.Contraseña="lorente"))
La he comprobado en SQL y funciona, pero cuando la paso a VB me da error de sintaxis y ya me estoy volviendo loca xq no se dnd esta el fallo. La escribo asi:
SQL = "SELECT p.Nombre " & _
"FROM Planta p " & _
"WHERE p.PlantaID IN ( " & _
"SELECT pu.PlantaID " & _
"FROM [Planta-Usuarios] pu " & _
"WHERE pu.DNI= ( " & _
"SELECT u.DNI " & _
"FROM USUARIOS u " & _
"WHERE u.NombreUsuario= " & nombre & _
"AND u.Contraseña = " & contraseña
No he cerrado los parentesis xq tb me da fallo y no se donde ponerlos...
Gracias de antemano!!!
SELECT p.Nombre FROM Planta p WHERE p.PlantaID IN(
SELECT pu.PlantaID FROM [Planta-Usuarios] pu WHERE pu.DNI=(
SELECT u.DNI
FROM USUARIOS u
WHERE u.NombreUsuario="estela" and u.Contraseña="lorente"))
La he comprobado en SQL y funciona, pero cuando la paso a VB me da error de sintaxis y ya me estoy volviendo loca xq no se dnd esta el fallo. La escribo asi:
SQL = "SELECT p.Nombre " & _
"FROM Planta p " & _
"WHERE p.PlantaID IN ( " & _
"SELECT pu.PlantaID " & _
"FROM [Planta-Usuarios] pu " & _
"WHERE pu.DNI= ( " & _
"SELECT u.DNI " & _
"FROM USUARIOS u " & _
"WHERE u.NombreUsuario= " & nombre & _
"AND u.Contraseña = " & contraseña
No he cerrado los parentesis xq tb me da fallo y no se donde ponerlos...
Gracias de antemano!!!
Hola!
Eso de los espacios entre Planta p esta bien pq lo que haces es darle un alias al nombre de la bd para referenciarla.
En mi humilde opinion el problema es el q me ha pasado a mi a veces. Es que pones:
"WHERE u.NombreUsuario= " & nombre & _
"AND u.Contraseña = " & contraseña
y entre el AND y el nombre que viene antes no has dejado espacio, de modo que se te solapa el nombre con el and. Queda pepeAND. Ya veras, muestra por pantalla la sentencia sql cuando la ejecutes o ejecuta el código paso a paso y haz agrega una isnpección y mira como está relleno, ya veras que te pone eso.
Igualmente puede ser que este no sea el único problema pero yo pondrÃa la mano en el fuego a que si que lo es.
Suerte y ya dirás
Eso de los espacios entre Planta p esta bien pq lo que haces es darle un alias al nombre de la bd para referenciarla.
En mi humilde opinion el problema es el q me ha pasado a mi a veces. Es que pones:
"WHERE u.NombreUsuario= " & nombre & _
"AND u.Contraseña = " & contraseña
y entre el AND y el nombre que viene antes no has dejado espacio, de modo que se te solapa el nombre con el and. Queda pepeAND. Ya veras, muestra por pantalla la sentencia sql cuando la ejecutes o ejecuta el código paso a paso y haz agrega una isnpección y mira como está relleno, ya veras que te pone eso.
Igualmente puede ser que este no sea el único problema pero yo pondrÃa la mano en el fuego a que si que lo es.
Suerte y ya dirás
hola, me parece que tu problema podria estar en el dni, que tipo de datos es dni? si es texto, deberias escribir ".... dni = '" & .... & "' .....
es decir por ej dni ='12452125'
es decir por ej dni ='12452125'
He probado hacer lo que me dijisteis pero me sigue dando los mismos fallos, podria hacer la consulta de otra manera para que no me den los errores?
