Imprimir página | Cerrar ventana

Insertar tabla combinar correspondencia Word

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85355
Fecha de impresión: 28/Marzo/2024 a las 23:03


Tema: Insertar tabla combinar correspondencia Word
Publicado por: dapsj
Asunto: Insertar tabla combinar correspondencia Word
Fecha de publicación: 17/Junio/2020 a las 20:14
Muy buenas!! 

Estoy generando un documento mediante marcadores con los campos del formulario. Mediante una plantilla de Word enl a que ya tengo asignados los marcadores, remplazo y sustituyo después me guarda el archivo en PDF.

Ese documento es un contrato y hay una parte que incluye las tarifas que registro en una tabla. Quería saber si se podría del mismo modo insertar esa tabla o consulta en el documento. También si respeta el formato del Word o le tengo que dar el formato.

'Cogemos los valores de los campos

Dim vFecha, vPersonadecontacto, vNifpersonacontacto, vNombrecomercial, vRazonsocial, vNIF, vDomicilio, vCodigopostal, vPoblacionprovincia As Variant

vFecha = Format(Date, "dd"" de ""mmmm"" de ""yyyy")
vPersonadecontacto = Me.[persona_contacto].Value
vNifpersonacontacto = Me.[cif]
vNombrecomercial = Me.[nombre].Value
vRazonsocial = Me.[razon_social].Value
vNIF = Me.[cif].Value
vDomicilio = Me.[direccion].Value
vCodigopostal = Me.[codigo_postal].Value
vPoblacionprovincia = Me.[textocodigo_postal].Value

'Creamos una instancia de Word


Dim Wrd As New Word.Application

Set Wrd = CreateObject("Word.Application")


'Especificamos la ruta y nombre de archivo

Dim contrato As String

contrato = "C:\RUTA"

'Abrimos el Word y lo mostramos

Wrd.Documents.Add contrato

Wrd.Visible = True


'Reemplazamos los marcardores con los datos que tenemos


With Wrd.ActiveDocument.bookmarks

.Item("mFecha").Range.Text = vFecha
.Item("mPersonadecontacto").Range.Text = vPersonadecontacto
.Item("mNifpersonacontacto").Range.Text = vNifpersonacontacto
.Item("mNombrecomercial").Range.Text = vNombrecomercial
.Item("mRazonsocial").Range.Text = vRazonsocial
.Item("mNif").Range.Text = vNIF
.Item("mDomicilio").Range.Text = vDomicilio
.Item("mCodigopostal").Range.Text = vCodigopostal
.Item("mPoblacionprovincia").Range.Text = vPoblacionprovincia


End With


La idea seria poner un nuevo marcador y definir el valor de ese marcador con la consulta de las tarifas de ese cliente. Pero no se si es posible y cual seria el código. O si hubiera otra manera.

Muchas gracias!!



Respuestas:
Publicado por: prga
Fecha de publicación: 18/Junio/2020 a las 13:43
Hola.
Bienvenido al foro.
Para insertar datos en una tabla word caben, en un principio,  estas posibilidades.
1ª) Disponemos de una tabla en la plantilla word y desde access la rellenamos añadiendo filas y  haciendo un barrido de celdas. En cada celda seinserta el dato correspondiente sacado del formulario o consulta. Podría resultar desesperante sí se van a insertar muchas líneas.

2ª) Mira este hilo  http://www.mvp-access.com/foro/ir-a-una-posicion-especifica-dentro-de-un_topic76696_post461370.html?KW=insertdatabase#461370" rel="nofollow - http://www.mvp-access.com/foro/ir-a-una-posicion-especifica-dentro-de-un_topic76696_post461370.html?KW=insertdatabase#461370  en el cual se inserta la tabla de una vez i es muchísimo mas rápido que el método anterior. El formateo de la tabla se haría después.
3ª). Hacer una combinación de correspondencia para rellener esa tabla ( En un principio más complicado que los métodos anteriores), pero...

4ª)?????

Espero que aporte ideas para solucionar la duda.
Ya comentas.
Un saludo a todos



Publicado por: dapsj
Fecha de publicación: 19/Junio/2020 a las 13:53
Muchas gracias!! Me ha servido de ayuda finalmente he introducir después del remplazo de los marcadores:

With Wrd.ActiveDocument.Bookmarks("mTabla")

.Range.InsertDatabase _
    SQLStatement:="SQLCONSULTA", _
    DataSource:="RUTA BASE DE DATOS"

End With

He puesto de forma rápida y funciona bien, me queda darle formato. Os iré contando y si queréis subo el código completo cuando lo tenga porque me parece interesante para automatizar la creación de documentos lo genera, lo exporta a PDF y finalmente lo adjunta a un correo y lo envía.

Soy nuevo por el foro pero espero poder ayudaros en lo que pueda!!





Imprimir página | Cerrar ventana