Visual Basic - Fallo consulta Combinación Correspondencia Access_Word

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Fallo consulta Combinación Correspondencia Access_Word

Publicado por Juan (8 intervenciones) el 08/05/2024 14:32:44
Tengo un botón en un formulario(Matrículas) con un subformulario (Convenios) que me envía datos a un word. El proceso se realiza pero sin ejecutar correctamente la consulta de selección de datos. Este es parte del código:
Aunque yo selecciono uno de varios convenios de esta matrícula, el me genera el word por todos los convenios de la misma. Puede que el error estén en la conexión o en el Select. Necesito ayuda por favor.

'AppWord.Visible = True
DocWord.MailMerge.OpenDataSource NAME:=CurrentDb.NAME, _
ConfirmConversions:=False, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
PasswordDocument:="", _
PasswordTemplate:="", _
WritePasswordDocument:="", _
WritePasswordTemplate:="", _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="QUERY Convenios Info", _
SQLStatement:= _
"SELECT * FROM [Convenios Info] WHERE IdMatrícula=" & Me.IdMatrícula & " and Idconvenio=" & Me.NConv, _
SQLStatement1:=""
With DocWord.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With[/code] texto[/code]
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
sin imagen de perfil

Fallo consulta Combinación Correspondencia Access_Word

Publicado por Marco (7 intervenciones) el 13/05/2024 18:07:59
"Aunque yo selecciono uno de varios convenios de esta matrícula, el me genera el word por todos los convenios de la misma."
Es que tu consulta esta así:
1
"SELECT * FROM [Convenios Info] WHERE IdMatrícula=" & Me.IdMatrícula & " and Idconvenio=" & Me.NConv
Cuando debería ser así:
1
"SELECT * FROM [Convenios Info] WHERE IdMatrícula=" & Me.IdMatrícula
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
sin imagen de perfil

Fallo consulta Combinación Correspondencia Access_Word

Publicado por Juan (8 intervenciones) el 13/05/2024 19:12:35
Al final lo solucioné. Era un error al escribir la instrucción SQL como me imaginaba y quedaría de la siguiente forma:

"SELECT * FROM [Convenios Info] WHERE ((([Convenios Info].IdMatrícula)=" & Me.IdMatrícula & ") AND (([Convenios Info].IdConvenio)=" & Me.NConv & "))", _

Así funciona perfectamente.

La pista fundamental la conseguí creando una consulta desde [ConveniosInfo] con los parámetros que yo quería (Idmatrícula y Número de convenio: NConv). Luego al abrir la consulta en vista SQL puedes ver la forma mas correcta de escribir la instrucción.

Espero que os sirva de ayuda

Un saludo

Juan
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
sin imagen de perfil

Fallo consulta Combinación Correspondencia Access_Word

Publicado por Marco (7 intervenciones) el 14/05/2024 16:05:42
Debo suponer que usas acces y si el generador de consultas te genera ese tipo de código con paréntesis, pero no es muy legible y si la consulta es con mas campos y tablas se vuelve confuso:
1
"SELECT * FROM [Convenios Info] WHERE ((([Convenios Info].IdMatrícula)=" & Me.IdMatrícula & ") AND (([Convenios Info].IdConvenio)=" & Me.NConv & "))"

Lo de arriba se puede resumir así, usando alias y queda más legible:

1
"SELECT c.* FROM [Convenios Info] as c WHERE c.IdMatrícula=" & Me.IdMatrícula & " and c.Idconvenio=" & Me.NConv

Los nombres de las tablas no deben tener espacios en blanco siempre que sea posible, si creas nuevas tablas no uses espacios es blanco, si es una base de datos de legado pues ni modo.
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
sin imagen de perfil

Fallo consulta Combinación Correspondencia Access_Word

Publicado por Juan (8 intervenciones) el 14/05/2024 16:18:15
Muchas gracias por tu aportación, voy a probarla ahora mismo.
Un saludo
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