PDA

Vollständige Version anzeigen : Access - Word Seriendruck (Step by Step)


sid
14.08.2001, 10:59
Hallo zusammen,

ich habe wirklich eine ganz große Bitte. Ich versuche schon seit geraumer Zeit Adressdaten aus einem bestimmten Listenfeld nach Word in einen Serienbrief zu übergeben. Nun habe ich da auch schon einige Beispiele gefunden und es gibt auch schon viele Threads zu diesem Thema, aber so richtig erklärt wird das ganze dort auch nicht.

Könnte mir vielleicht mal jemand die einzelnen VBA-Befehle auflisten und dann erklären, was da genau passiert? Das wäre echt genial.

Dank schonmal im Voraus

sid

peppi
14.08.2001, 12:17
Hallo,
nachstehend ein Beispiel, welches ich auch aus irgendeinem Forum und auf meine Bedürfnisse angepaßt habe. Beim Klick auf eine Schaltfläche wird die nachstehende Prozedur aufgerufen:


Private Sub Ctl2HAG_btn_Click()
On Error GoTo ErrWinWord
Dim objWordApp As Object 'Verweis auf Microsoft Word
Dim Bereich As Object 'Verweis auf Bereich innerhalb des Dokuments (z.B. eine Textmarke)
Dim strVorlage As String

If Not IstWordGestartet Then
DoCmd.Hourglass True
Set objWordApp = CreateObject("Word.Application") 'Winword starten
DoCmd.Hourglass False
Else
Set objWordApp = GetObject(, "Word.Application") 'Winword war schon gestartet
End If

objWordApp.Visible = True
'neues Dokument basiert auf Vorlage öffnen
strVorlage = CurDir & "\2HAG-S.dot"
objWordApp.Documents.Add Template:=strVorlage

'zu Textmarke springen und Namen einfügen
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Adresse")
Bereich.InsertAfter Me!Adresse_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Betreff")
Bereich.InsertAfter Me!Betreff_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Anrede")
Bereich.InsertAfter Me!Anrede_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="DatumDesBescheids")
Bereich.InsertAfter Me!Datum_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Unterzeichner")
Bereich.InsertAfter Me!Unterzeichner_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="AuskunftErteilt")
Bereich.InsertAfter Me!Auskunft_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="ZiNr")
Bereich.InsertAfter Me!ZiNummer_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="TelDurchw")
Bereich.InsertAfter Me!Tel_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Widerspruch")
Bereich.InsertAfter Me!Wider_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="derdie")
Bereich.InsertAfter Me!DerDie_txt
Set Bereich = objWordApp.ActiveDocument.Goto(What:=GotoBookmark, Name:="Aktenzeichen")
Bereich.InsertAfter Me!NR_txt

objWordApp.Activate 'WinWord in den Vordergrund bringen


'Verweise auf WinWord-Objekte freigben.
Set Bereich = Nothing
Set objWordApp = Nothing

ExitWinWord:
Exit Sub

ErrWinWord:
Select Case Err.Number
Case 5101
MsgBox "Die Textmarke wurde in der Vorlage nicht gefunden.", vbCritical
Case 429
MsgBox "Das OLE-Objekt für WinWord konnte nicht erstellt werden.", vbCritical
Case 5137, 5151
MsgBox "Die Vorlage " & strVorlage & " wurde nicht gefunden.", vbCritical
Case Else
MsgBox Err.Description, vbCritical
End Select
Resume ExitWinWord
End Sub


Wichtig hierbei ist, daß die Dokumentvorlage in dem Ordner zu finden ist, der als Standardordner bei Access eingetragen ist.

sid
14.08.2001, 13:12
wo kommt denn die IstWordGestartet-Variable her??