Access 2003 combinar correspondencia con Word

Tengo una base de datos en access
2003 y he conseguido (pese a mis casi nulos conocimientos de
programación) hacer un botón que combine los datos de la access con un
documento word, hasta ahí todo bien, pero se me genera un word combinado
con todos los registros y yo tan solo quiero que se me combine el
registro que tengo seleccionado. ¿Puedes ayudarme?

La macro que ejecuta
La combinación lo hace a través de un modelo como el del tutorial de
microsoft, es decir:
Function MergeIt()
Dim objWord As Word.Document
Set objWord = GetObject("C:\MyMerge.doc", "Word.Document")
' Make Word visible.
objWord.Application.Visible = True
' Set the mail merge data source as the Northwind database.
objWord.MailMerge.OpenDataSource _
Name:="C:\Program Files\Microsoft " & _
"Office\Office\Samples\Northwind.mdb", _
LinkToSource:=True, _
Connection:="TABLE Customers", _
SQLStatement:="SELECT * FROM [Customers]"
' Execute the mail merge.
objWord.MailMerge.Execute
End Function

1 Respuesta

Respuesta
1

Aquí esta el hecho de que esté seleccionado todo desde la tabla

SQLStatement:="SELECT * FROM [Customers]"

Eso dice, Seleccionar todo desde la tabla Customers, si le pusieras una condición where podrías solo indicar el registro seleccionado.

ID=Form_Customers.Id_Customers 'Este es el Id que vienen del formulario en cuestión

SQLStatement:="SELECT * FROM [Customers] WHERE Id_Customers=ID"

De esta forma podemos filtrar la consulta y hacer que solo aparezca el registro activo.

Saludos.

Si me he equivocado en ca condición where es porque no uso este tipo de código para hacer mis consultas ya que por lo general los hago con el asistente de consultas de microsoft. Pero es cosa de probarlo y si esta malo debes consultar la forma correcta de la condición Where.

Hola, ante todo gracias por tu respuesta.

Perdona la tardanza en contestar, he estado probando lo que me mandaste y no he sido capaz de usar la condición where dentro del código de visual basic. Lo he puesto de todas las formas posibles y nada. He estado googleando a ver si lo veía pero tampoco he encontrado nada.

He intentado también meter esa condición dentro de una macro que ejecute el modulo (primero filtrando por registro y después ejecutando el código) pero no he conseguido que me filtre por un solo registro. ¿Como crees que podría funcionar mediante el uso del macro?

Muchas gracias, un saludo.

Yo he hecho esto antes y prefiero en vez de hacer una consulta select lo que hago es crear una tabla temporal que contendrá los resultados verdad, y luego a través de una consulta se inserción cargo los datos según el parámetro que necesitas

Luego y una vez cargado los datos simplemente abres el word vía código. Es el word quien contendrá la conexión a la base de datos y tabla donde fueron cargados los datos por el insert.

De esta forma podrás solo ver el dato que necesitas.

Si necesitas ayuda, pues instalas el teamviewer lo puedes descargar en www.teamviewer.com y luego me dices cuando testarás conectado(a) para resulver tu problema de forma remota. Es un sistema muy bueno para establecer sesión de control remoto a demás es seguro.

Bueno, una vez coordinemos eso, me envías el ID y la clave para poder conectarme a tu pc.

El problema no he sido capaz de solucionarlo pero por mis pocos conocimientos. La atención del experto ha sido perfecta.

Un saludo y gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas