HINWEIS
Kapitel 13: Programmschnittstellen
Microsoft Word über ActiveX steuern
OLE-Automatisierung; CreateObject-Methode; Word.Application-Objekt;
Eines der »dankbarsten Opfer« für die OLE-Automation ist nach wie vor Word. Unser kleines Beispielpro-
gramm zeigt Ihnen, wie Sie aus einem Access-Programm heraus ein neues Word-Dokument erstellen,
Kopf- und Fußzeilen einfügen und Daten aus einer Tabelle übertragen.
Oberfläche
Den Grundaufbau können Sie der folgenden Abbildung entnehmen. Am einfachsten ist es, wenn Sie die
Maske von einem Assistenten erstellen lassen und nur noch die beiden zusätzlichen Befehlsschaltflächen ein-
fügen.
Abbildung 13.37 Formularlayout
Adressverwaltung
Quelltext
Damit Sie problemlos die Word-Objekte und -konstanten verwenden können, sollten Sie einen Verweis auf
die Microsoft Word Object Library einrichten. Doch Achtung:
Ist Microsoft Word auf dem PC des Endanwenders Ihrer Access-Anwendung nicht installiert, kommt es zu
Problemen bei der Programmausführung.
Grundlage für die Verbindung zu Word ist eine allgemeine Variable vom Typ
Object
:
Private word As Object
Der Ablauf ist mit wenigen Worten erklärt: Nach Initialisierung der Variablen mit
CreateObject
können Sie
alle Methoden des
Word.Application
-Objekts verwenden. Bevor Sie sich lange in die Hilfe von Word vertiefen
ist es sinnvoller, ein Word-Makro aufzuzeichnen und dieses entsprechend zu modifizieren. Zum einen haben
Sie so gleich die korrekte Syntax, zum anderen sparen Sie sich jede Menge Arbeit.
Private Sub Schaltfläche28_Click()
On Error Resume Next
Set Word = CreateObject("Word.Application") 'Variable initialisieren
886
Bei Problemen steigen wir an dieser Stelle aus:
If Word Is Nothing Then
MsgBox "Konnte keine Verbindung zu Word herstellen!", 16, "Problem"
Exit Sub
End If
With Word
Word sichtbar machen (standardmäßig wird Word nicht angezeigt):
.Visible = True
Ein neues Dokument erzeugen:
.Documents.Add
If .ActiveWindow.View.SplitSpecial <> wdPaneNone Then .ActiveWindow.Panes(2).Close
If .ActiveWindow.ActivePane.View.Type = wdNormalView Or .ActiveWindow.ActivePane.View.Type = _
wdOutlineView Or _
.ActiveWindow.ActivePane.View.Type = wdMasterView Then .ActiveWindow.ActivePane.View.Type = _
wdPageView
Kopfzeile erzeugen:
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
With .Selection.Font
.Name = "Times New Roman"
.Size = 12
.Bold = True
End With
.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Selection.TypeText Text:="Kohlenhandel Brikett-GmbH & Co.-KG. - Holzweg 16 - 54633 Steinhausen"
Fußzeile erzeugen:
If .Selection.HeaderFooter.IsHeader = True Then
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
.Selection.TypeText Text:= "Bankverbindung: Stadtsparkasse Steinhausen BLZ 123456789 ” & _
KtoNr. 782972393243"
In den Textteil wechseln und Adresse eintragen:
.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
.Selection.TypeText Text:=Vorname.Value & " " & Text1.Value
.Selection.TypeParagraph
.Selection.TypeText Text:=Straße.Value
.Selection.TypeParagraph
With .Selection.Font
.Name = "Times New Roman"
.Size = 12
.Bold = True
End With
.Selection.TypeText Text:=PLZ.Value & " " & Ort.Value
.Selection.TypeParagraph
With .Selection.Font
.Name = "Arial"
887
Praxisbeispiele
Kapitel 13: Programmschnittstellen
.Size = 14
.Bold = True
End With
Select Case Feld40.Value
Case 1
.Selection.TypeText Text:="1. MAHNUNG"
Case 2
.Selection.TypeText Text:="2. MAHNUNG"
Case 3
.Selection.TypeText Text:="3. MAHNUNG"
End Select
.Selection.TypeParagraph
With .Selection.Font
.Name = "Times New Roman"
.Size = 12
.Bold = True
End With
If geschlecht.Value = 1 Then ' männlich
.Selection.TypeText Text:="Sehr geehrter Herr " & Text1.Value
Else
.Selection.TypeText Text:="Sehr geehrte Frau " & Text1.Value
End If
End With
End Sub
Test
Öffnen Sie das Formular, wählen Sie einen Datensatz und klicken Sie auf die Schaltfläche »Brief schreiben«:
Abbildung 13.38 Das erzeugte Dokument in Microsoft Word
888

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.