Error al ejecutar SQL en formulario

Tengo una consulta que me da el siguiente error

He realizado la siguiente consulta de igualación en un formulario después de actualizar el campo txtIdViatico:

txtMov = "SELECT Sum([Lunes]+[Martes]+[Miercoles]+[Jueves]+[Viernes]+[Sábado]+[Domingo]) AS Total FROM T_Viaticos INNER JOIN T_Dias ON T_Viaticos.Id = T_Dias.IdViaticos GROUP BY T_Viaticos.NumId HAVING (((T_Viaticos.NumId)= & Me.txtIdViatico & " '"));"

¿Cuál puede ser mi error?

Les saludo

Respuesta
1

Pues lo que te está diciendo el mensaje de error es que hay un valor que no es correcto...

... Y no es correcto, porque te faltan las comillas antes del valor Me.txtIdViatico

Tendría que ser algo como esto:

Mov="SELECT Sum([Lunes]+[Martes]+[Miercoles]+[Jueves]+[Viernes]+[Sábado]+[Domingo]) AS Total 
FROM T_Viaticos 
INNER JOIN T_Dias ON T_Viaticos.Id = T_Dias.IdViaticos 
GROUP BY T_Viaticos.NumId 
HAVING (T_Viaticos.NumId= & "'" & Me.txtIdViatico & "'");"

La consulta corre cuando la hago de manera independiente, parece que el problema está al igualarlo con el campo Mov, lo que me agrega en el campo es todo el código de la consulta como texto, lo he tratado de solucionar pero no le hallo forma.

Si es así, es porque la consulta está mal hecha.

Tendría que ser algo como esto:

DoCmd. RunSQL Mov

Eso ejecuta la consulta, y dudo mucho que te agregue el texto en el campo.

Me da este error

me imagino que es por lo siguiente:

Lo traté de corregir poniendo doble comillas dobles, pero no se corrigió:

Que puedo corregir?

Dim Mov As String

Mov = "SELECT Sum([Lunes]+[Martes]+[Miercoles]+[Jueves]+[Viernes]+[Sábado]+[Domingo]) AS Total FROM T_Viaticos INNER JOIN T_Dias ON T_Viaticos.Id = T_Dias.IdViaticos GROUP BY T_Viaticos.NumId HAVING (T_Viaticos.NumId= & " '" & Me.txtIdViatico)& "'";"

DoCmd.RunSQL Mov

Está interpretando le faltan comillas por alguna parte o que le sobra algo (el paréntesis de "Me.txtIdViatico)"

Prueba con esto:

mov= "SELECT Sum([Lunes]+[Martes]+[Miercoles]+[Jueves]+[Viernes]+[Sábado]+[Domingo]) AS Total" & _
"FROM T_Viaticos " & _
"INNER JOIN T_Dias ON T_Viaticos.Id = T_Dias.IdViaticos " & _
"GROUP BY T_Viaticos.NumId " & _
"HAVING (T_Viaticos.NumId=" & " '" & Me.txtIdViatico & "')"

Yo lo he comprobado antes de enviartelo y por lo menos, la sentencia es correcta... Otra cosa será que seleccione correctamente los valores.....

Saludos... Ya me cuentas si te sirve..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas