** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Insertar tabla combinar correspondencia Word
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Insertar tabla combinar correspondencia Word

 Responder Responder
Autor
Mensaje
dapsj Ver desplegable
Nuevo
Nuevo


Unido: 17/Junio/2020
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dapsj Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Insertar tabla combinar correspondencia Word
    Enviado: 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!!
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita prga Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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 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

Arriba
dapsj Ver desplegable
Nuevo
Nuevo


Unido: 17/Junio/2020
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dapsj Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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!!


Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable