Access - Combinacion masiva

 
Vista:

Combinacion masiva

Publicado por yanira (140 intervenciones) el 17/11/2006 21:31:27
En mi base de datos yo tengo una tabla que almacena un registro y lo envia a word para combinarlo alli con un documento.
Como hago para que me permita el envio de mas de un registro y su combinacion.
Porque los envia pero al momento de combinar solo toma el primero
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
Imágen de perfil de Alejandro

Enviar y combinar múltiples registros en Word

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 17:58:17
Para enviar y combinar múltiples registros desde Access a Word, es necesario que ajustes tu código de manera que procese cada registro individualmente y realice la combinación para cada uno de ellos. Puedes utilizar un bucle para recorrer la tabla y enviar los registros uno por uno a Word.

Aquí tienes un ejemplo de cómo podrías modificar tu código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub EnviarYCombinarRegistros()
    Dim db As Database
    Dim rs As Recordset
    Dim wordApp As Object ' Objeto de la aplicación Word
    Dim wordDoc As Object ' Objeto del documento Word
    Dim strDocumento As String ' Ruta del documento de Word
 
    ' Ruta del documento de Word que usarás como plantilla para la combinación
    strDocumento = "C:\Ruta\Al\Documento\Plantilla.docx"
 
    ' Abre la base de datos y la tabla que contiene los registros a enviar
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("NombreTabla")
 
    ' Crea una instancia de la aplicación Word y abre el documento de plantilla
    Set wordApp = CreateObject("Word.Application")
    Set wordDoc = wordApp.Documents.Open(strDocumento)
 
    ' Bucle para recorrer los registros y enviarlos a Word
    Do While Not rs.EOF
        ' Coloca aquí el código para enviar el registro a Word, por ejemplo:
        ' wordDoc.Bookmarks("NombreCampo1").Range.Text = rs!Campo1
        ' wordDoc.Bookmarks("NombreCampo2").Range.Text = rs!Campo2
        ' ...
 
        ' Realiza la combinación de correspondencia en Word para este registro
        wordApp.MailMerge.Execute
 
        ' Guarda el documento combinado con un nombre único o en una carpeta específica si lo deseas
 
        ' Avanza al siguiente registro
        rs.MoveNext
    Loop
 
    ' Cierra la conexión con la base de datos y el documento de Word
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
    wordApp.Quit
    Set wordDoc = Nothing
    Set wordApp = Nothing
End Sub

En este ejemplo, se utiliza un bucle `Do While` para recorrer todos los registros en la tabla "NombreTabla". Dentro del bucle, se puede utilizar código adicional para enviar los campos de cada registro a los marcadores de posición del documento de Word (representados por los `Bookmarks`). Luego, se realiza la combinación de correspondencia utilizando `wordApp.MailMerge.Execute` para cada registro. Puedes guardar el documento combinado con un nombre único o en una carpeta específica si lo deseas.

Es importante asegurarse de que los nombres de los campos en la tabla de Access coincidan con los marcadores de posición en el documento de Word para que la combinación se realice correctamente.

Con esta modificación en el código, se enviarán y combinarán todos los registros de la tabla, no solo el primero.

Espero que esta solución te sea útil para enviar y combinar múltiples registros desde Access a Word. ¡Buena suerte con tu proyecto!
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