Access - Redactar SQL para Recordset

 
Vista:
sin imagen de perfil

Redactar SQL para Recordset

Publicado por JAVIER (18 intervenciones) el 12/03/2022 16:12:10
Buenas tardes a todos

Siempre me encuentro con el mismo problema en el uso de comillas, dobles comillas y &

Si esto funciona perfectamente

1
Set RstRemesa = db.OpenRecordset("SELECT [2021Datos].NumPersona, [2021Datos].Nif, [2021Datos].Apellidos, [2021Remesa01].Cuota FROM 2021Remesa01 INNER JOIN 2021Datos ON [2021Remesa01].NumPersona= [2021Datos].NumPersona")

Como debo redactar el SQL para que funcione lo siguiente

1
2
3
4
Ejercicio = Me.ComboEjercicio
Remesa = Ejercicio & “Remesa01”
TablaDatos = Ejercicio & "Datos"
Set RstRemesa = db.OpenRecordset("SELECT " & TablaDatos & ".NumPersona, " & TablaDatos & ".Nif, " & TablaDatos & ".Apellidos, " & Remesa & ".Cuota FROM " & Remesa & ".INNER JOIN " & TablaDatos & "ON " & Remesa & ". NumPersona = " & TablaDatos & ". NumPersona ")
Muchas gracias. Conocéis algún manual al respecto?
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

Redactar SQL para Recordset

Publicado por Anonimo (3316 intervenciones) el 12/03/2022 17:50:37
Hay mas de un error en esa SQL ...

- Hay comillas que no son las adecuadas.
1
Remesa = Ejercicio & “Remesa01”
(las comillas no son las 'clásicas' dobles comillas y al compilar da error)

2: (al dar valores y visualizar la SQL resultante aparece esto
1
SELECT 2021Datos.NumPersona, 2021Datos.Nif, 2021Datos.Apellidos, 2021Remesa01.Cuota FROM 2021Remesa01.INNER JOIN 2021DatosON 2021Remesa01. NumPersona = 2021Datos. NumPersona

Una forma cómoda de verificar la sintaxis es 'visualizarla' antes de aplicarla (al menos en tiempo de diseño), consiste en crear una variable de texto por ejemplo 'UnaSQL as Strig'

A esa variable se le adjudica el contexto:
1
2
3
4
5
6
7
8
9
10
UnaSQL = "SELECT " & TablaDatos & ".NumPersona, " & TablaDatos & ".Nif, " & TablaDatos & ".Apellidos, " & Remesa & ".Cuota FROM " & Remesa & ".INNER JOIN " & TablaDatos & "ON " & Remesa & ". NumPersona = " & TablaDatos & ". NumPersona "
 
'Se visualiza (un MsgBox o en la ventana de inmediato)
 
Msgbox UnaSQL
'o
Debug.Print UnaSQL
 
'y si es correcta ... se aplica
Set RstRemesa = db.OpenRecordset( UnaSQL )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Redactar SQL para Recordset

Publicado por JAVIER (18 intervenciones) el 13/03/2022 08:30:43
Mucgas 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