Usar variables en instrucción SQL |
Responder |
Autor | |
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Tema: Usar variables en instrucción SQL Enviado: 22/Mayo/2022 a las 11:58 |
Hola. Tengo una tabla cuya estructura duplico cada año con docmd.copyobject el nombre de la tabla varía con los 4 dígitos finales, que son el año, que previamente he metido en una variable de cadena vaño: nombre_tabla= "nombre_" & vaño cómo sustituyo las cláusulas FROM y WHERE de esta instrucción SQL con la variable nombre_tabla? SELECT * FROM Empleados INNER JOIN nombre_2020 ON Empleados.[NOMBRE_COMPLETO] = nombre_2020.[TECNICO] Es que no se bien cómo sería la sintaxis: si entre comillas simples, almohadillas... Muchas gracias por vuestra ayuda
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 22/Mayo/2022 a las 12:23 |
¿Dónde usas esa sentencia? ... ¿en VBA?
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 22/Mayo/2022 a las 12:33 |
en VBA
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 22/Mayo/2022 a las 12:45 |
Pues por ejemplo:
NomTabla = "Nombre_" & format(Year(Fecha), "yyyy") o NomTabla = "Nombre_2022" y la SQL: SQL = "SELECT .... FROM Empleados LEFT JOIN " & NomTabla & " LEFT JOIN Empleados.[NOMBRE_COMPLETO] = " & NomTabla & ".TECNICO" |
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 22/Mayo/2022 a las 12:56 |
Muchas gracias!.
Mañana lo pruebo en el trabajo. Un saludote! |
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 23/Mayo/2022 a las 09:38 |
Hola
Lo he probado, pero me da error de sintaxis en la cláusula FROM.
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 23/Mayo/2022 a las 09:49 |
¿Y qué has puesto? ¿Y cómo?
Pon un punto de interrupción y comprueba la variable con la cadena SQL en la cadena inmediato.
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 23/Mayo/2022 a las 13:20 |
Lo he puesto con y sin comillas, y de las dos formas me da error de sintaxis:
LA VARIABLE VEJERCICIO ES PÚBLICA Y VIENE DE UN FORMULARIO CON UN CUADRO COMBINADO QUE MUESTRA LOS DISTINTOS AÑOS ÉSTE ES EL CÓDIGO DEL PROCEDIMIENTO: Dim nomConsulta, nomTabla nomConsulta = "Consulta_Master_exclusiones_" & vejercicio nomTabla = "Master_exclusiones_" & vejercicio Dim consulta As DAO.QueryDef For Each consulta In CurrentDb.QueryDefs If consulta.Name = nomConsulta Then consulta.SQL = "SELECT * FROM &nomTabla& LEFT JOIN Empleados on &nomTabla&.[TECNICO]= Empleados.[Id]" Exit For End If Next consulta Set consulta = Nothing PONIENDO COMILLAS TAMBIÉN DA ERROR: consulta.SQL = "SELECT * FROM "&nomTabla&" LEFT JOIN Empleados on "&nomTabla&".[TECNICO]= Empleados.[Id]" |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Enviado: 23/Mayo/2022 a las 13:30 |
Esto es parecido a lo de: "Encuentre las diferencias"
Esto has escrito tú: "SELECT * FROM &nomTabla& LEFT JOIN Empleados on &nomTabla&.[TECNICO]= Empleados.[Id]" "SELECT * FROM "&nomTabla&" LEFT JOIN Empleados on "&nomTabla&".[TECNICO]= Empleados.[Id]" Esto es lo que he escrito yo: "SELECT .... FROM Empleados LEFT JOIN " & NomTabla & " LEFT JOIN Empleados.[NOMBRE_COMPLETO] = " & NomTabla & ".TECNICO" Mira la secuencia de comillas dobles, blancos, etc. |
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 23/Mayo/2022 a las 13:45 |
Eran los espacios en blanco!!!!!
Hay que ver por qué poquito se puede estropear un programa! Muchísimas gracias. Ahora funciona perfectamente!.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |