Combinar correspondencia access-word con un botón

Tengo una cuestión a ver si los expertos del foro pueden echarme un cable, os cuento:
Tengo una BD en Access con varias tablas. He tomado los campos que me interesan y los he agrupado en una consulta "cons_Datos". Después he creado un formulario "form_Datos"para alimentar los datos de la consulta "cons_Datos".
Por otro lado he creado unas plantillas en Word "C:\plantilla.doc" con un texto base y las he vinculado a la BD Access mediante el "combinar correspondencia" de forma que la plantilla se cumplimenta con los datos de la consulta "cons_Datos".
Mi intención es la siguiente: necesitaría crear un botón en el formulario "form_Datos" de forma que al pulsarlo abra el documento Word "C:\plantilla.doc" y realice el combinar correspondencia exclusivamente con el registro que en ese momento tenga en pantalla el formulario "form_Datos". Si además de esto también me realiza la edición final en un documento nuevo (la opción "finalizar y combinar - editar documento individual" de word), de forma que sólo tenga que ejecutar en manual el "archivo-guardar como...", entonces, DPM.

2 Respuestas

Respuesta
1
No estoy familiarizado con vínculos con word pero supongo que lo que haces es leer datos de una tabla de tu aplicación, por lo que una idea sería crear una tabla con los campos que desees y que será de donde lee el word. A través de un botón del formulario, borraremos esta tabla y anexaremos el registro activo en ese momento. Después se abriría el word con lo que solo leerá un registro.
Te muestro un link que te puede ayudar
http://www.mvp-access.com/buho/ficheros/access_word_2.zip
Una aperta
Muchas gracias por tu aportación, pero no consigo cuadrarlo con lo que necesito, me explico:
El documento Word ya está creado (C:\plantilla.doc). Este documento tiene un texto fijo y con el combinar correspondencia le añado unos campos de un registro concreto de la BD Access.
Hasta ahora he conseguido que al pulsar un botóon en Access me abra el documento C:\plantilla.doc, pero el resto tengo que hacerlo en Manual.
Lo que hago en Manual es: editar la lista dedestinatarios de la BD, seleccionar el que quiero (que es el que tengo en pantalla en el formulario "form_Datos"), pulsar el botón "finalizar y combinar", tomar la opción "editar doucmentos individuales..." y así obtengo el documento buscado.
Lo que yo pretendo es que el botón de Access lo haga todo en Automático: abra el doucmento C:\plantilla.doc; edite la lista de destinatarios del combinar correspondencia y selecicone el que tengo en ese momento en el formulario (por ejemplo a través de un campo llave :Dato1); ejecute el "finalizar y combinar"; y ejecute "editar doucmentos individuales...".
De esta forma pulsando el botón generaré el documento word con el registro que deseo (el que tengo en ese momento en pantalla), sin tener que hacer nada más de forma manual.
En cualquier caso mi más sincero agradecimiento por responder y por tu aportación, que sí que me va a venir bien para otra aplicación que necesitaba.
Un saludo.
Como te indiqué no trabajo con word.
En access existe la posibilidad de realizar informes con los datos de las tablas, y esa es la forma más útil de generar plantillas que en tu caso las realizas en word.
La diferencia es que el word es un fichero y el informe lo ejecuta sin crear el fichero.
Supongo que tienes la necesidad de crear el word para variarlo de alguna manera, ya que si no es así no sé la utilidad que tendría.
Si el problema es que necesitas guardar ese informe como fichero, el access puede generar un fichero de tipo Snapshot que es un formato de office o imprimirlo en PDF. Incluso en caso de querer enviar un correo podrías realizarlo a través de Archivo>Enviar a>Destinatario de correo(Como datos adjuntos), escogemos Snapshot y te envía a través del outlook el informe.
Tras esta indicaciones no te puedo ayudar mucho más.
Lamento no poder ayudarte en tu problema especifico.
Una aperta.
Muchas gracias por tu ayuda y dedicación, pero necesito esta utilidad or lo que comentas de variar la plantilla. En cualquier caso tus aportaciones me han sido de gran utilidad.
Buscando en la red he encontrado una "media solución" que es emplear el siguiente código:
Sub combinar_Click()
Dim AppWord As Word.Application
Dim DocWord As Word.Document
Dim MyAppID, ReturnValue
Set AppWord = New Word.Application
AppWord.Visible = True
Set DocWord = AppWord.Documents.Open("C:\plantilla.doc")
AppWord.Visible = True
DocWord.MailMerge.OpenDataSource Name:="C:\BasedeDATOS.mdb", _
        ConfirmConversions:=False, _
        ReadOnly:=False, _
        LinkToSource:=True, _
        AddToRecentFiles:=False, _
        PasswordDocument:="", _
        PasswordTemplate:="", _
        WritePasswordDocument:="", _
        WritePasswordTemplate:="", _
        Revert:=False, _
        Format:=wdOpenFormatAuto, _
        Connection:="cons_Datos", _
        SQLStatement:= _
        "SELECT * FROM [cons_Datos]", _
        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
End Sub
Aunque el problema de este código es que me realiza el combinar correspondencia con todos los registros de la consulta, en vez de sólo con el que tengo en el formulario form_Datos.
Seguiremos investigando una solución. En cualquier caso, repito, muchas gracias por tu aportación.
Saludos.
Respuesta
1
Quizá esto te ayude
http://www.mistrucos.net/truco-office-access-combinar-correspondencia-205.htm
Prueba esto:
Te guardas el documento combinado de word, imaginemos se llame combinado.doc
Te creas un botón y le pones el siguiente código:
Dim stAppName As String
stAppName = "winword.exe C:\MisArchvios\rutacompleta\combinado.doc"
Call Shell(stAppName, 1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas