Access - MULTIPLES CARTAS WORD DESDE ACCESS

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 11 puestos en Access (en relación al último mes)
Gráfica de Access

MULTIPLES CARTAS WORD DESDE ACCESS

Publicado por Krippapy (5 intervenciones) el 24/06/2020 21:40:07
Buenas programadores:

Antes que nada aclaro que soy un aficionado al VBA y si bien este es un tema sobre el que se ha hablado en varios foros, al no encontrar una respuesta, es que hoy me atrevo a postear esta consulta pues necesito imprimir multiples cartas (mil) en Word para distintos destinatarios a partir de mi BD.

Les explico un poco, actualmente utilizo éste código VBA para reemplazar marcadores en una plantilla Word, puesto en un botón, evento "Al hacer click", en el formulario de entrada de registros:

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
44
45
46
47
48
Private Sub BtnImpAcuse_Click()
'Generamos carta de acuse automática
On Error GoTo Err_cmdCombinar
Dim AppWord As Word.Application
Dim DocWord As Word.Document
Dim Texto As String
 
' Variable con el nombre completo de la carta a guardar.
Dim fileName As String
'Variable en la que se tiene u obtiene el nombre de la plantilla.
Dim Plantilla As String
' Variable en la que se tiene u obtiene el nombre del directorio de las cartas.
Dim DirNotas As String
Plantilla = "C:\midirectorio\cartas\CARTA_ACUSE_RC_2.dotx"
DirNotas = "C:\midirectorio\cartas\"
 
' Abrir el Word utilizando la plantilla.
AppWord.Documents.Add Template:=Plantilla, NewTemplate:=False
Set DocWord = AppWord.ActiveDocument
' Comprobar existencia de los marcadores , si Existe
' y el contenido del cuadro de texto del formulario no es nulo se introduce
' en el documento.
If DocWord.Bookmarks.Exists("Marcador1") Then
If Not IsNull(Campo1) Then
DocWord.Bookmarks("Marcador1").Select
Texto = Campo1
DocWord.Application.Selection.TypeText Text:=Texto
End If
End If
..... SON 7 MARCADORES CON DIFERENTES TIPOS DE DATOS
 
AppWord.Visible = True
AppWord.ActiveDocument.SaveAs2 fileName
AppWord.WindowState = wdWindowStateMaximize
Exit_cmdCombinar:
DoCmd.Hourglass False
Exit Sub
 
Err_cmdCombinar:
 
If Err = 91 Or Err = -2147023174 Then
Set AppWord = New Word.Application
Resume
End If
 
'bloqueo boton
Me.BtnImpAcuse.Enabled = False
End Sub

Este botón hace su trabajo y hasta ahora funciona bien, la cuestión es que necesito volver a generar las notas desde una fecha determinada al día de hoy y será muy tedioso hacer una por una las mas de mil que hay por hacer, entonces mi consulta concreta es la siguiente:

Como en la misma BD existe una formulario de búsqueda donde a través de una consulta y un Requery puedo tener datos de varios registros en un ListBox independiente de un determinado periodo, los cuales utilizo para generar varios Informes ya sea del resultado total o haciendo selección múltiple; lo que quería saber es si ¿es posible a partir de los resultados del ListBox generar las cartas en Word utilizando el código descrito más arriba u otro mejor?.

Agradeceré mucho la ayuda que puedan proporcionarme!

Saludos!
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