Im Artikel XML: Austausch mit Access-Bordmitteln haben wir gezeigt, wie Sie die Daten einer Access-Tabelle oder auch die Daten mehrerer verknüpfter Access-Tabellen in ein XML-Dokument exportieren können. Möglicherweise möchten Sie für einen solchen Export nicht immer den Export-Assistenten bemühen. Deshalb haben wir uns angesehen, wie Sie den Export per VBA durchführen können.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1903_XMLExportierenPerVBA.accdb.
Exportieren per VBA-Methode
Für den Export der Daten aus Tabellen oder Abfragen stellt Access die Methode Export-XML des Application-Objekts bereit. Diese Methode hat die folgenden Pflichtparameter (siehe Bild 1):
Bild 1: Aufruf der Methode ExportXML des Application-Objekts
- ObjectType: Einer der Werte acExportForm, acExportFunction, acExportQuery, acExportReport, acExportServerView, acExportStoredProcedure oder acExportTable. Wir interessieren uns hauptsächlich für den Export von Tabellen, also verwenden wir acExportTable als Wert des ersten Parameters. Wenn Sie beispielsweise das Ergebnis einer Abfrage exportieren wollen, verwenden Sie den Parameterwert acExportQuery.
- DataSource: Gibt den Namen des zu exportierenden Objekts an, in unserem Fall also etwa den Namen einer Tabelle oder Abfrage.
- DataTarget: Gibt den Namen der zu erstellenden Datei an. Bei diesem Parameter handelt es sich zwar um einen optionalen Parameter, aber wenn Sie ihn weglassen, liefert Access beim Aufruf von ExportXML eine Fehlermeldung (Ungültige Parameter für ExportXML).
Damit können wir bereits den ersten Test starten und die folgende Anweisung im Direktbereich des VBA-Editors absetzen:
Application.ExportXML acExportTable, "tblKategorien", CurrentProject.Path & "\tblKategorien.xml"
Wir wollen also ein Element des Typs acExportTable exportieren, das den Namen tblKategorien aufweist.
Für die Zieldatei haben wir mit CurrentProject.Path das Verzeichnis der aktuellen Datenbank ermittelt und den Dateinamen tblKategorien.xml angegeben.
Das Ergebnis des Exports finden Sie in Bild 2. Hier ist anzumerken, dass die ExportXML-Anweisung eventuell vorhandene Dateien gleichen Namens ohne Rückfrage überschreibt.
Bild 2: Export der Tabelle tblKategorien (gekürzte Fassung)
Die exportierte XML-Datei unterscheidet sich nicht von einer mit dem Export-Assistenten exportieren Tabelle.
Weitere Parameter von ExportXML
Die Methode stellt noch weitere Parameter bereit, die weitgehend die Optionen des Dialogs XML exportieren und des Dialogs zur Anzeige der erweiterten Einstellungen des XML-Exports wiedergeben:
- SchemaTarget: Wenn Sie eine Schema-Datei erzeugen lassen wollen, geben Sie hier den Namen der Schema-Datei an. Im Dialog XML exportieren erledigen Sie das einfach durch Anhaken der Option Schema der Daten (XSD) – siehe Bild 3. Den Namen geben Sie in den erweiterten Eigenschaften unter Schema ein.
- PresentationTarget: Dafür gilt das gleiche wir für die Option SchemaTarget: Sie geben hier den Namen der zu erstellenden XSL-Datei an. Dies entspricht dem Aktivieren der Option Schema der Daten (XSD) aus dem Dialog XML exportieren. Dort geben Sie den Namen der Präsentationsdatei im erweiterten Dialog unter Präsentation ein.
- ImageTarget: Erlaubt laut Onlinehilfe die Angabe eines Ordners für Bilddateien. Wir konnten allerdings keine sinnvolle Anwendung für diesen Parameter finden.
- Encoding: Einer der beiden Werte acUTF8 oder acUTF16.
- OtherFlags: Weitere Parameter – siehe unten.
- WhereCondition: Nimmt ein Kriterium entgegen, um die auszugebenden Daten einzuschränken.
- AdditionalData: Legt fest, welche weiteren Tabellen berücksichtigt werden sollen. Dies ist beim Export über die Benutzeroberfläche im Dialog mit den erweiterten Einstellungen möglich (siehe Bild 4).
Bild 3: Der Dialog XML exportieren
Bild 4: Weitere Einstellung des Dialogs XML exportieren
Der Parameter OtherFlags
Dieser Parameter nimmt eine Kombination aus weiteren Konstanten auf. Diese beschreiben wir in der folgenden Auflistung (hier nur die für unsere Einsatzzwecke sinnvollen Werte). Wenn Sie den Export über die Benutzeroberfläche durchführen, finden Sie die entsprechenden Optionen auf der Registerseite Schema der erweiterten Einstellungen des Dialogs XML exportieren (siehe Bild 5):
Bild 5: Optionen in den erweiterten Einstellungen
- acEmbedSchema (Zahlenwert 1): Schreibt die Schema-Informationen direkt in das mit dem Parameter DataTarget angebene zu erstellende Dokument. Der Inhalt, der sonst in die durch SchemaTarget angegebene Datei geschrieben wird, landet dann direkt in der unter DataTarget angegebenen Datei.
- acExcludePrimaryKeyAndIndexes (2): Legt fest, ob Primärschlüssel- und Indexinformationen vom Export ausgeschlossen werden sollen.
- acExportAllTableAndFieldProperties (32): Legt fest, ob Tabellen- und Feldeigenschaften exportiert werden sollen.
Daten einschränken mit dem Parameter WhereCondition
Wenn Sie nicht alle Daten einer Tabelle in das XML-Dokument exportieren wollen, haben Sie zwei Möglichkeiten: Sie können eine Abfrage erstellen, welche die Daten nach den gewünschten Kriterien filtert.
Oder Sie verwenden den Parameter WhereCondition der ExportXML-Methode.
Wenn Sie etwa nur die erste Kategorie exportieren wollen, verwenden Sie einen Aufruf wie den folgenden:
Application.ExportXML acExportTable, "tblKategorien", CurrentProject.Path & "\tblKategorien.xml", , , , , , "KategorieID = 1"
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: