Access - Problemas combinar correspondencia, AYUDA!!

 
Vista:

Problemas combinar correspondencia, AYUDA!!

Publicado por Brian (1 intervención) el 14/11/2006 10:45:19
Hola, expondre mi problema a ver si alguien conoce la solución.
Tengo una base de datos en Acces, y en mi empresa hay determinadas cartas
predefinidas para cada determinado caso.
Entonces lo que me gustaria saber, es cómo hacer que cuando en el formulario de entrada de datos que tengo para rellenar la BD, segun la opcion que pongan en los campos se creara una carta u otra con el metodo de combinar correspondencia.
De momento lo unico que he logrado es combinar correspondencia propiamente dicho desde Word, eso lo hago bien, pero busco la forma de hacerlo automaticamente.
Y solo para el registro que este trabajando, no para todos.
Ya se que no me he explicado muy bien, pero si alguien me entiende y sabe como hacerlo estaré muy agradecido.
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

Automatizar combinación de correspondencia para crear cartas personalizadas en Word

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 16:44:55
Entiendo tu problema y puedo ayudarte a encontrar una solución para automatizar la creación de cartas utilizando la combinación de correspondencia en Access.

Puedes lograrlo mediante el uso de la función "RunSavedImportExport" en VBA (Visual Basic for Applications). Esta función te permite ejecutar una operación de importación o exportación guardada previamente, lo que nos permitirá crear una carta utilizando la combinación de correspondencia en Word.

A continuación, te proporciono los pasos generales para lograrlo:

1. Configura la carta en Word:
- Crea la carta en Word utilizando la combinación de correspondencia como lo has hecho previamente. Asegúrate de que todos los campos y datos variables estén correctamente configurados para que la carta pueda personalizarse según los datos de la base de datos.

2. Guarda la operación de combinación de correspondencia:
- En Word, guarda la operación de combinación de correspondencia como un "Documento de Word con combinación de correspondencia" (.docx). Para hacerlo, ve a la pestaña "Correo" o "Mailings" y selecciona "Iniciar Combinación de Correspondencia" -> "Cartas". Luego sigue los pasos para configurar la carta y selecciona "Finalizar y combinar" -> "Guardar documentos individuales". Guarda los documentos en un lugar accesible.

3. Crea un campo en la tabla:
- En la tabla de Access que contiene los datos para la combinación de correspondencia, crea un nuevo campo donde se almacenará la ruta y el nombre del documento de Word con la carta generada.

4. Crea un botón o evento en el formulario:
- En el formulario de entrada de datos, agrega un botón o evento que desencadene la combinación de correspondencia. Puedes hacer esto mediante un botón de comando o utilizando un evento específico como el evento "Al hacer clic" del botón.

5. Agrega código VBA al botón o evento:
- En el código VBA asociado al botón o evento, utiliza la función "RunSavedImportExport" para ejecutar la operación de combinación de correspondencia guardada previamente en Word. Esta función abrirá Word y generará la carta personalizada utilizando los datos del registro actual en el formulario.

El código VBA sería algo como esto (asegúrate de ajustar las rutas y nombres de archivos según tu configuración):

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
Private Sub btnGenerarCarta_Click()
    Dim appWord As Object
    Dim carta As String
    Dim registroID As Long
 
    ' Obtener el ID del registro actual en el formulario
    registroID = Me!ID
 
    ' Ruta y nombre del documento de combinación de correspondencia en Word
    carta = "C:\Ruta\Carta.docx"
 
    ' Abrir Word y ejecutar la combinación de correspondencia
    Set appWord = CreateObject("Word.Application")
    appWord.Visible = True
    appWord.Documents.Open carta, ReadOnly:=True, ConfirmConversions:=False, _
                           ReadOnlyRecommended:=False, AddToRecentFiles:=False, _
                           PasswordDocument:="", PasswordTemplate:="", _
                           Revert:=False, WritePasswordDocument:="", _
                           WritePasswordTemplate:="", Format:=wdOpenFormatAuto
 
    ' Combinar correspondencia con el registro actual
    appWord.ActiveDocument.MailMerge.OpenDataSource Name:="C:\Ruta\TuBaseDeDatos.accdb", _
        SQLStatement:="SELECT * FROM TuTabla WHERE ID=" & registroID
 
    appWord.ActiveDocument.MailMerge.Execute
 
    ' Guardar la carta personalizada con un nombre único
    appWord.ActiveDocument.SaveAs2 "C:\Ruta\CartasPersonalizadas\" & "Carta_" & registroID & ".docx"
 
    ' Cerrar Word
    appWord.Quit
    Set appWord = Nothing
End Sub

Con esto, cuando hagas clic en el botón o evento en el formulario, se generará automáticamente la carta personalizada utilizando la combinación de correspondencia en Word, y se guardará en una ubicación específica con un nombre único basado en el ID del registro actual.

Espero que esta solución te sea útil y te permita automatizar la creación de cartas personalizadas utilizando la combinación de correspondencia en Word desde Access. ¡Buena suerte!
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