Home > Artikel > Ausgabe 9/2014 > Ex- und Import zu Microsoft Word

Ex- und Import zu Microsoft Word

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Der Austausch von Daten zu einer Excel-Mappe ist sicher eine häufige Aufgabe unter Access. Seltener hingegen findet eine Anbindung an Word statt. Dabei ist gerade das eine Anforderung, die durchaus oft gewünscht wird, sei es, um Berichte manuell weiter zu verarbeiten oder Seriendokumente mit einer Access-Datenquelle zu versehen. Wir zeigen, wie Ex- und Import zu Word in beide Richtungen aussehen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1410_WordImExport.mdb.

Schnittstellen zu Word

Access zeigt seine Bereitschaft zur Kommunikation mit Word bereits in der Oberfläche an. Unter Access 2003 über die Menü- oder Symbolleisten (siehe Bild 1), in den Folgeversionen direkt im Ribbon unter dem Reiter Externe Daten (Bild 2), erkennbar jeweils an den Word-Symbolschaltflächen. Diese Schaltflächen sind manchmal aktiv, manchmal deaktiviert, je nachdem, welches Objekt im Datenbankfenster oder Navigationsbereich markiert ist, oder welches Objekt in der Datenbank gerade angezeigt wird. Es lässt sich feststellen, dass der Export-Button mit der Aufschrift Veröffentlichen mit Microsoft Word bei folgenden Objektarten aktiv wird: Tabellen, Abfragen, Formulare und Berichte. Dabei spielt es keine Rolle, ob das Objekt geöffnet, oder nur markiert ist.

Exportmöglichkeiten über Menü- und Symbolleiste in Access 2003

Bild 1: Exportmöglichkeiten über Menü- und Symbolleiste in Access 2003

Ribbon-Elemente zum Export nach Word

Bild 2: Ribbon-Elemente zum Export nach Word

Export von Tabellen und Abfragen

Markieren oder öffnen Sie in der Beispieldatenbank die Abfrage qryStammdaten. Sie zeigt alle Felder der Tabelle tblStammdaten, filtert die Datensatzgruppe jedoch nach allen Adressaten, die in Hamburg wohnen. Klicken Sie dann auf die Menüschaltfläche für den Word-Export Veröffentlichen in Microsoft Word. Sie werden nun nach dem Bestimmungsort und -namen für die anzulegende Word-Datei gefragt. Wählen Sie einfach das Verzeichnis der Datenbank selbst. Ganz passend ist der Ausdruck Word-Datei dabei nicht, denn Access lässt hier keine andere Wahl, als den Export in eine RTF-Datei. Mehr lässt sich zu diesem Vorgang nicht sagen. Access schaltet keine weiteren Dialoge mehr dazwischen und beginnt mit der Ausgabe, wobei ein ähnlicher Fortschrittsdialog, wie beim Drucken, erscheint. Schließlich öffnet sich Microsoft Word mit dem angelegten Dokument, falls Sie unter Access 2010 anfangs die Option Öffnen der Zieldatei nach dem Exportvorgang aktiviert hatten – unter Access 2003 passiert dies automatisch. Als Ergebnis erhalten Sie ein Dokument mit einer Tabelle, die im Kopf die Feldnamen trägt (wie in Bild 3). Das Layout ist DIN-A4 Hochformat. Bei breiten Tabellen ragt die Word-Tabelle über den Rand hinaus, weshalb Sie sie besser markieren und über das Kontextmenü die Funktion AutoAnpassen|Größe an Fenster anpassen aufrufen. Der weiteren Formatierung des Dokuments steht nichts mehr im Wege.

Die nach Word transferierte Abfrage qryStammdaten

Bild 3: Die nach Word transferierte Abfrage qryStammdaten

Wiederholen Sie nun den gesamten Vorgang für das Formular frmStammdaten. Der Ablauf ist identisch und... das Ergebnis ebenfalls! Die Hoffnung, Access würde hier eventuell das Layout des Formulars in Word nachbilden, wird nicht erfüllt. Es zieht lediglich die Datenherkunft des Formulars – hier ebenfalls die Abfrage qryStammdaten – heran und exportiert diese.

Export von Berichten

Anders sieht es bei Berichten aus. Machen Sie den Test mit dem Bericht rptStammdaten der Beispieldatenbank. Dort sind die Daten zusätzlich nach PLZ und Nachnamen gruppiert und mit einem abgestuften Layout versehen. Tatsächlich gleicht das exportierte Dokument dem Bericht weitgehend (Bild 4). Access analysiert hier also nicht nur die Daten, sondern auch die Positionierung der Ausgabefelder und einige Formatierungen. Dazu gehören Schriftarten und -größen, sowie Textfarben, nicht aber etwa Rahmen oder Hintergrundfarben. Linien oder Rechtecke, von eingebetteten Bildern ganz zu schweigen, bleiben außen vor. Für einfache Berichte ist dieser Export brauchbar, bei komplexen haben Sie oder Ihre Datenbankanwender das Nachsehen. Ein deutlicher Minuspunkt stellt etwa die Tatsache dar, dass die Positionierung der Texte Im Word-Dokument über Tabstopps geschieht. Das macht eine weitere Formatierung praktisch unmöglich. Geeigneter wäre ein Tabellenaufbau gewesen. Und Kopf- wie Fußbereiche des Berichts wandern auch nicht etwa in Kopf- und Fußzeilen des Dokuments, sondern sind normaler Bestandteil des Textes.

Der nach Word exportierte Bericht rptStammdaten

Bild 4: Der nach Word exportierte Bericht rptStammdaten

Überlegen Sie also genau, ob Sie anderen Datenbankanwendern diese Exportmöglichkeit anbieten wollen.

Export per VBA

Der manuelle Exportvorgang lässt sich unter VBA mit einer einzigen Code-Zeile bewerkstelligen. Das Zauberwort ist hier die Anweisung OutputTo des DoCmd-Objekts. Über verschiedene Parameter lässt sich der Export steuern:

DoCmd.OutputTo acOutputQuery, _

"qryStammdaten", _

acFormatRTF, _

CurrentProject.Path & _

"\stammdaten.rtf", True

Die Parameter im Einzelnen: Der erste gibt die Art des Objekts an, welches exportiert werden soll. Hier per Konstante acQutputQuery eine Abfrage. Darauf folgt der Name des Objekts in der Datenbank. Im Weiteren das Ausgabeformat, welches für den Word-Export immer acFormatRTF lauten muss. Und schließlich der Dateiname, unter dem das Dokument gespeichert wird. Im Beispiel ist das der Pfad der Datenbank CurrentProject.Path und stammdaten.rtf als Dateiname. Optional können Sie hinten noch angeben, ob das exportierte Dokument auch gleich in Word geöffnet werden soll und übergeben dafür True oder False.

Export über HTML

Da Word auch HTML-Dateien öffnen kann, ist der Export eines Objekts aus der Datenbank in das HTML-Format ebenfalls eine Option. Dazu markieren Sie wieder das gefragte Objekt und stoßen den Export über Externe Daten|Weitere|HTML-Dokument an (Access 2007 ff.), oder über die Menüleiste Datei|Exportieren... HTML-Documents (Access 2003). Wenn Sie dabei nicht das Kontrollkästchen Mit Formatierung aktiviert hatten, sieht das Ergebnis unter Word aus, wie in Bild 5. Hier fehlen seltsamerweise die Spaltenüberschriften. Mit aktivierter Formatierung hingegen erhalten Sie das Ergebnis in Bild 6 mit Spaltenköpfen.

Mit Formatierung exportiertes HTML-Dokument

Bild 5: Mit Formatierung exportiertes HTML-Dokument

In Word geöffnete HTML-Datei als Resultat des HTML-Exports aus Access

Bild 6: In Word geöffnete HTML-Datei als Resultat des HTML-Exports aus Access

Import aus Word

Dass ein normaler Brief nicht in eine Datenbanktabelle importiert werden kann, bedarf wohl keiner Erläuterung. Sinn macht der Import nur aus einem Dokument, welches eine Tabelle enthält.

Access selbst sieht keine Möglichkeit vor, Daten aus einem Word- oder RTF-Dokument zu importieren. Der Workaround besteht darin, das Word-Dokument im Format Nur-Text zu speichern und dann unter Access mit dem Import-Assistenten zu transferieren. Beim Speichern eines Dokuments mit Tabelle wird allerdings eine Sequenz der Zellen generiert, die sich so nicht in Access importieren lässt. Vor dem Speichern steht deshalb das Umwandeln der Tabelle in Text an. Markieren Sie die Tabelle und rufen Sie die entsprechende Funktion über Menüleiste oder Ribbon auf. Der Dialog aus Bild 7 fragt nun danach, wie die Zellinhalte getrennt werden soll.

Die Word-Tabelle muss erst in Text umgewandelt werden

Bild 7: Die Word-Tabelle muss erst in Text umgewandelt werden

Belassen Sie es bei der Voreinstellung Tabstopps. Nach Konvertierung hat das Dokument das Aussehen wie in Bild 8. Speichern Sie nun im Nur-Text-Format.

Durch Tabstopps getrennte Tabellenfelder eines Word-Dokuments

Bild 8: Durch Tabstopps getrennte Tabellenfelder eines Word-Dokuments

Zum Import in Access rufen Sie über das Menü Datei|Externe Daten|Importieren... auf, oder über das Ribbon Externe Daten|Text-Datei. Wählen Sie die soeben unter Word gespeicherte Textdatei aus und folgen Sie den Schritten des Importassistenten (Bild 9). Kontrollieren Sie dabei vor allem, ob Access die Felder richtig interpretiert und den Spalten die korrekten Datentypen zuweist. Access verwendet für die Analyse nur Stichproben der Tabelle und kommt so häufig zu falschen Entscheidungen. Die Spalte Hausnummer etwa wird gern als Integer-Wert angesehen, was den Import fehlschlagen lässt, wenn ein Datensatz mit einer Nr. 22A enthalten ist. Korrigieren Sie in diesem Fall den Felddatentyp manuell.

Der Textimport-Assistent

Bild 9: Der Textimport-Assistent

Außerdem achtet Access beim Import auf das sogenannte Dezimaltrennzeichen und kommt ins Schlingern, wenn es ein entsprechendes vorfindet. Ändern Sie das Zeichen für die Dezimaltrennung daher über den Dialog, der über den Button Weitere... erscheint in ein unwahrscheinliches Zeichen, wie etwa ALT-254 auf der numerischen Tastatur.

Nach Abschluss des Assistenten finden Sie eine Tabelle in der Datenbank vor, die dem Inhalt der Word-Tabelle entspricht. Fassen wir zusammen: Der Import aus Word ist stark eingeschränkt und lässt sich nur auf Tabellen anwenden, die zuvor in Tab-getrennten Text zu verwandeln sind. Als Speicherformat taugt ausschließlich das Nur-Text-Format.

Word-Seriendruck aus Access heraus

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!