SQL - Fácil pero debo ser torpe.

 
Vista:

Fácil pero debo ser torpe.

Publicado por AJFM (2 intervenciones) el 22/04/2007 14:01:59
Trabajando en Visual Basic 6.0 con DAO 3.6 y ADO 10.
Base de datos en Access2000
Estoy tratando de crear un recordset a partir de una consulta de selección en la que quiero utilizar los datos de los campos de otra tabla en la claúsula WHERE.

Es decir, que de la tabla notasxobjs sólo me coja las notas que corresponden a una determinada persona. Lo he hecho con la función IF..THEN..ELSE...END IF pero no me gusta como funciona ya que tengo que recorrer toda la tabla desde el principio y eso hace que el programa ruede muy lento.
Creo que es más rápido usar una consulta de selección con la claúsula WHERE.
Esta es la consulta:

nombre= rs.Fields ("persona")

consulta = "SELECT notasxobjs.* From notasxobjs WHERE ((notasxobjs.alumno) = " & nombre & ")"

Set ntam =nt2000.OpenRecordset (consulta, dbOpenDynaset)

Me da error de sintaxis en tiempo de ejecución :

Error 3075 en tiempo de ejecución
Falta operador en la consulta.
Error de sintaxis (falta operador) en la expresión de consulta
'((notasxobjs.alumno) = FERNANDEZ RUIZ, CARLOS)'.

He revisado y probado todos los cambios que se me ocurren y ninguno funciona.

He cambiado '&' por '+' , añadido y quitado paréntesis, etc. etc. pero siempre me da el mismo error en la misma línea.

Muchas gracias.
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

Al fin

Publicado por Yo mismo (2 intervenciones) el 22/04/2007 14:13:34
Acabo de encontrar la solución. Sólo había que poner UNA COMILLA y luego DOS COMILLAS, o sea, y viceversa en la otra parte.

WHERE ((notasxobjs.alumno) = '" & nombre & "')"
en lugar de
WHERE ((notasxobjs.alumno) = " & nombre & ")"
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:Al fin

Publicado por Leonardo (10 intervenciones) el 25/04/2007 16:02:44
En caso que no sepas la comilla simple (') significa que estas comparando con un Texto y si no pones las comillas significa que la variable es numerica..........lo mas probable es que por eso te este dando ese error

Atte
Leonardo
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

AYUDA!

Publicado por Gabita (1 intervención) el 25/09/2008 20:18:11
Estoy con un problema parecido:
Tengo esta sentencia de consulta:

SELECT F.*, A.nombre FROM Fotocopias F, Alumno A WHERE (A.legajo = ' "& legajo & "') AND (F.id_juego = " & idPedido & ") ORDER BY F.fecha DESC;

Y me da este error:

Script error detected at line 16.
Source line: set RS = oConn.Execute(sql)
Description: [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'F.id_juego ='.

Ya me tiene haaartaaa!!!
AYUDA, PORFA!!!

Mil gracias
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