Visual Basic - Error 3061 con Consulta SQL

Life is soft - evento anual de software empresarial
 
Vista:

Error 3061 con Consulta SQL

Publicado por Marcelo (29 intervenciones) el 26/09/2000 00:00:00
Necesito ayuda con una consulta que saca dias desde...hasta, tengo dos variables las cuales contienes fechas, creo la consulta con SQL, utilizo DAO, pero en el momento en que le digo que lea los valores me da el error 3061, si modifico el SQL me da el error 3075, asi que en este momento estoy perdido. Aqui teneis el codigo.
´Declaracion de variables
Dim CMtemp As QueryDef
Dim CMtemp2 As Recordset
Dim DESDE As Date
Dim HASTA As Date

´Aqui le hice un par de cambios puesto que he quitado los inputbox y he puesto 2 MaskedEdit.
con formato de fecha corta.

DESDE = Masked1.text
HASTA = Masked2.text
´Crea consulta
Set CMtemp = dbHoras.CreateQueryDef("ConMes")
CMtemp.SQL = "SELECT * From Horas WHERE (((HORAS.DIA)>=[DESDE] And (HORAS.DIA)<[HASTA]));"
CMtemp.Close
´Lee los valores
´y da el error 3061
Set CMtemp2 = dbHoras.OpenRecordset("ConMes", dbOpenSnapshot)
´Llena los cuadro de lista con los datos obtenidos
Do Until CMtemp2.EOF
lstF.AddItem CMtemp2("DIA")
lstH.AddItem CMtemp2("HORAS")
CMtemp2.MoveNext
Loop
CMtemp2.Close
´Borra la consulta
dbHoras.QueryDefs.Delete "ConMes"
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:Error 3061 con Consulta SQL

Publicado por tecniCam (220 intervenciones) el 26/09/2000 00:00:00
El error 3061 se debe a que usas puntuación (.) en "HORAS.DIA" y no agrupas con corchetes.
El error 3075 es básicamente parecido. Indica que no está bien escrita la expresión.
DESDE y HASTA siempre que sean variables o constantes no necesitan los corchetes.
Prueba a ponerlo así:
CMtemp.SQL = "SELECT * From Horas WHERE [HORAS.DIA]>=DESDE And [HORAS.DIA]<HASTA;"
Si tampoco funciona, yo que tú, cambiaría los nombres de HORA.DIA por otro, por ejemplo: HoraDia
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:Error 3061 con Consulta SQL

Publicado por Christian A. Valeria Celedón (207 intervenciones) el 26/09/2000 00:00:00
Estoy casi seguro de saber cual es tu error y digo casi por que no he probado aún la solución que te voy a dar. Uno de los errores que vi en tu código está en que escribiste los nombres de las variables DESDE y HASTA como parte de la cadena SQL cuando lo que debieras haber hecho es colocar los valores de estas variable. Por ejemplo, coloca esto:
CMtemp.SQL = "SELECT * From Horas WHERE (((HORAS.DIA)>=#" & Masked1.text
& "# And (HORAS.DIA)<#" & Masked2.text
& "#))"

y supongamos los siguientes valores:
Masked1.text = "02-02-2000"
Masked2.text = "10-02-2000"

Entonces el valor de la propiedad SQL del objeto CMtemp sería
SELECT * From Horas WHERE (((HORAS.DIA)>=#02-02-2000# And (HORAS.DIA)<#10-02-2000#))

La anterior es una cadena SQL correcta que no debiera presentar error. Espero que me hayas entendido, sino mándame un correo para poder seguir ayudándote
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:Error 3061 con Consulta SQL

Publicado por Marcelo (29 intervenciones) el 27/09/2000 00:00:00
Muchas gracias Christian la verdad es que me ha sido de mucha ayuda, esta forma la habia probado anteriormente y tambien me habia dado error, el problema estaba en que habia colocado "" en el format del MaskEdit.
Un saludo.
Marcelo
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