![]() |
||
![]() |
Serienbriefe in Word von der Datenbank aus steuernIch m÷chte mit Hilfe einer SchaltflΣche genau den Datensatz aus Access 97 mit einem Serienbrief in Word verbinden, den ich vorher ausgewΣhlt habe. Das Starten von Word funktioniert problemlos. Ich schaffe es aber nicht, die Vorlage automatisch zu ÷ffnen und den Datensatz in ein neues Textdokument einzufⁿgen. K÷nnen Sie mir bei diesem Problem helfen? Die Steuerung einer anderen Office-Anwendung durch Access 97 ist ein komplexes Thema. Deshalb sind einige Annahmen zu treffen: Die an den Serienbrief zu ⁿbergebenden Daten liegen in einer Tabelle ╗Personen½, und der Nutzer kann mit Hilfe eines Formulars ╗Auswahl½ einen speziellen Datensatz aussuchen. Dieses Formular enthΣlt neben den Datenfeldern zusΣtzlich das ungebundene Textfeld ╗DokName½, das Sie dann spΣter ben÷tigen. Zuerst mⁿssen Sie in Ihrer Access-Datenbank eine neue Abfrage namens ╗Datenauswahl½ erzeugen, auf die Word als Datenquelle fⁿr den Serienbrief zugreifen kann. Diese Abfrage basiert auf der Tabelle ╗Personen½ und enthΣlt alle von Word ben÷tigten Felder. ZusΣtzlich mⁿssen Sie unbedingt den PrimΣrschlⁿssel der Tabelle û im Beispiel ╗PERSON½ û in die Auswahl aufnehmen, da Sie nur anhand dieses Feldes einen Datensatz eindeutig identifizieren k÷nnen. Tragen Sie nun unter den ╗Kriterien½ des PrimΣrschlⁿssels die Zeichenkette ╗[Formulare]![Auswahl]![PERSON]½ ein. Die beschriebene Abfrage wΣhlt dann genau den Datensatz der Tabelle ╗Personen½ aus, den das Formular ╗Auswahl½ aktuell auf dem Monitor anzeigt. Als nΣchstes mⁿssen Sie mit Word einen Serienbrief erzeugen, der sich auf diese Abfrage bezieht. Hier soll der entsprechende Serienbrief den Namen BRIEF.DOC tragen und im Ordner C:\TEST liegen. Nachdem das allgemeine Layout dieses Dokumentes gestaltet ist, k÷nnen Sie die Datenquelle mit dem Menⁿbefehl ╗Extras | Seriendruck½ bestimmen, der den ╗Seriendruck-Manager½ ÷ffnet. Im Bereich ╗Hauptdokument½ geben Sie an, dass Word aus dem aktuellen Dokument einen Serienbrief erzeugen soll. Die Datenquelle dieses Serienbriefes definieren Sie anschlie▀end im gleichnamigen Bereich. Verweisen Sie dabei auf die Abfrage ╗Datenauswahl½ Ihrer Access-Anwendung. Klicken Sie abschlie▀end auf die SchaltflΣche ╗Hauptdokument bearbeiten½, um die Seriendruckfelder in Ihren Serienbrief zu integrieren. Hierzu nutzen Sie in der Symbolleiste ╗Seriendruck½ die SchaltflΣche ╗Seriendruckfeld einfⁿgen½. Zu guter Letzt mⁿssen Sie im Access-Formular ╗Auswahl½ eine SchaltflΣche namens ╗WordStarten½ hinzufⁿgen, mit deren Hilfe der Anwender spΣter die Textverarbeitung startet. Hinterlegen Sie den im Kasten abgedruckten VBA-Quelltext dem Ereignis ╗Beim Klicken½ dieser SchaltflΣche. Au▀erdem ist es unbedingt notwendig, dass Sie im Visual-Basic-Editor mit dem Menⁿbefehl ╗Extras | Verweise½ einen Verweis auf die Objektbibliothek ╗Microsoft Word 8.0 Object Library½ erzeugen. Private Sub WordStarten_Click() On Error GoTo Err_WordStarten_t Click Dim WordObj As Object Dim myDocname As String myDocname = Me!DokName Set WordObj = Createt Object(äWord.Applicationô) WordObj.Documents.Open t äC:\Test\Brief.Docô WordObj.Visible = True WordObj.Documents(äC:\Test\t Brief.Docô).MailMerge.t Destination = wdSendTot NewDocument WordObj.Documents(äC:\Test\t Brief.Docô).MailMerge.t Execute WordObj.ActiveDocument.t SaveAs FileName:=myDocname WordObj.Documents(äC:\Test\t Brief.Docô).Close SaveChant ges:=wdDoNotSaveChanges Set WordObj = Nothing Exit_WordStarten_Click: Exit Sub Err_WordStarten_Click: MsgBox Err.Description Resume Exit_WordStarten_t Click End Sub Wenn der Anwender nun auf die SchaltflΣche ╗WordStarten½ klickt, veranlasst Access die Textverarbeitung Word, den Serienbrief C:\TEST\ BRIEF.DOC zu ÷ffnen, wobei als Datenquelle die Abfrage ╗Datenauswahl½ Ihrer Access-Datenbank fungiert. Sofort gibt Word den Serienbrief in ein anderes Dokument aus, dessen Namen und Pfad Sie im ungebundenen Textfeld ╗DokName½ bestimmen. Das Beispiel finden Sie auf der Heft-CD unter hCHIP-Code: SERIENBR |
![]() |