Hier mein Beispiel, ich speicher das fertig Dokument in einem Tabellenfeld des Typs OLE.
Private Sub btnErstellen_Click()
Dim DBPfad As String
Dim Betreffzeile As String
Dim NeuesDokument As Word.Document
’ Prozedur beenden, wenn bereits ein Dokument vorhanden ist
If Not IsNull(Me!Dokument) Then
MsgBox "Sie können im aktuellen Datensatz kein neues Dokument erstellen, " & _
„weil bereits ein Dokument vorhanden ist!“, vbCritical + vbOKOnly, „Dokument erstellen“
Exit Sub
End If
’ Sicherstellen, daß eine Dokumentart ausgewählt wurde
If IsNull(Me!Dokumentart) Then
MsgBox „Bitte wählen Sie vorher die gewünschte Dokumentart aus!“, _
vbInformation + vbOKOnly, „Dokument erstellen“
Exit Sub
End If
Me!Datum = Now
DBPfad = HolePfad(CodeDb.Name) & „\Vorlagen“
’ Neues Objekt auf Basis der gewählten Dokumentart erstellen
Select Case Me!Dokumentart
Case 1 ’ Brief
Betreffzeile = _
InputBox(„Bitte geben Sie die Betreffzeile für den Brief ein:“, _
„Neuen Brief schreiben“)
If Betreffzeile = „“ Then
Me.Undo
Exit Sub
End If
Me!Beschreibung = Betreffzeile
With Me!Dokument
.Class = „Word.Document.8“ ’ Den Klassennamen angeben
.OLETypeAllowed = acOLEEmbedded ’ Den Typ des Objekts angeben
.SourceDoc = DBPfad & „BRIEFVOR.DOT“ ’ Quelldatei im aktuellen Datenbankpfad
.Action = acOLECreateEmbed ’ Das verknüpfte Objekt erstellen
.Verb = acOLEVerbOpen
.Action = acOLEActivate
End With
Set NeuesDokument = Me.Dokument.Object
With NeuesDokument
.Bookmarks(„Firma“).Range.Text = CStr(Forms!Dokverwaltung.Firma)
.Bookmarks(„Name“).Range.Text = CStr(Forms!Dokverwaltung.Kontaktperson)
.Bookmarks(„Straße“).Range.Text = CStr(Forms!Dokverwaltung.Straße)
.Bookmarks(„Ort“).Range.Text = CStr(Forms!Dokverwaltung.PLZ) & " " & CStr(Forms!Dokverwaltung.Ort)
.Bookmarks(„Betreff“).Range.Text = Betreffzeile
End With
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]