{"id":55001045,"date":"2016-08-01T00:00:00","date_gmt":"2020-05-22T15:41:54","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1045"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"XMLExport_ohne_VBA","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/","title":{"rendered":"XML-Export ohne VBA"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>F&uuml;r den einen oder anderen Anwendungsfall ben&ouml;tigen Sie die Daten aus den Tabellen Ihrer Datenbank im XML-Format &#8211; zum Beispiel, um diese von einer anderen Anwendung aus einzulesen. Access stellt verschiedene M&ouml;glichkeiten f&uuml;r den Export von Daten im XML-Format zur Verf&uuml;gung. Wir schauen uns an, wie dies &uuml;ber die Benutzeroberfl&auml;che gelingt und welche M&ouml;glichkeiten VBA f&uuml;r diesen Zweck bietet &#8211; diesmal ohne Nutzung externer Bibliotheken, also ausschlie&szlig;lich mit Bordmitteln.<\/b><\/p>\n<p>XML ist ein wichtiges Austauschformat f&uuml;r Daten. Sehr viele Webservices bieten ihre Daten in diesem Format an oder nehmen diese so entgegen. Daher ist es wichtig zu wissen, welche M&ouml;glichkeiten Microsoft Access f&uuml;r den Export der Daten aus den Tabellen der Datenbank zur Verf&uuml;gung stellt. In diesem Beitrag schauen wir uns daher die in Access eingebauten M&ouml;glichkeiten an, also solche, die ohne die Einbindung zus&auml;tzlicher Bibliotheken wie etwa <b>Microsoft XML, vX.0 <\/b>auskommen. Dazu geh&ouml;ren sowohl die entsprechenden Export-Befehle der Benutzeroberfl&auml;che als auch einige VBA-Befehle der Access-Bibliothek.<\/p>\n<h2>Export per Benutzeroberfl&auml;che<\/h2>\n<p>Am einfachsten geht es nat&uuml;rlich &uuml;ber die Befehle der Benutzeroberfl&auml;che von Access. Wenn Sie im Ribbon zum <b>Tab<\/b>-Element <b>Externe Daten <\/b>wechseln, finden Sie dort im rechten Bereich eine Reihe von Befehlen f&uuml;r den Export in die verschiedenen Formate vor. Einer davon lautet <b>XML-Datei <\/b>(s. Bild 1). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_001.png\" alt=\"Starten des XML-Exports per Ribbon-Befehl\" width=\"700\" height=\"293,5722\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Starten des XML-Exports per Ribbon-Befehl<\/span><\/b><\/p>\n<p>Klicken Sie diesen Befehl beispielsweise an, w&auml;hrend Sie die Tabelle <b>tblArtikel <\/b>(oder eine andere Tabelle) der aktuellen Datenbank im Navigationsbereich markiert haben, erscheint ein Dialog, der einen Dateinamen f&uuml;r die Export-Datei vorschl&auml;gt.<\/p>\n<p>Dieser besteht aus dem <b>Eigene Dokumente<\/b>-Ordner des aktuellen Benutzerverzeichnisses und dem Namen der Tabelle mit der Dateiendung <b>.xml<\/b> (s. Bild 2). Diesen Pfad k&ouml;nnen Sie entweder durch direkte Eingabe per Tastatur &auml;ndern oder aber &uuml;ber einen <b>Datei speichern<\/b>-Dialog, den Sie mit einem Klick auf <b>Durchsuchen&#8230; <\/b>&ouml;ffnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_002.png\" alt=\"Erster Schritt des Export-Assistenten\" width=\"649,4275\" height=\"479,1291\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Erster Schritt des Export-Assistenten<\/span><\/b><\/p>\n<p>Im n&auml;chsten Schritt erscheint der Dialog aus Bild 3. Hier legen Sie fest, welche Dateien angelegt werden sollen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_003.png\" alt=\"Angabe weiterer Informationen\" width=\"424,6255\" height=\"213,6825\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Angabe weiterer Informationen<\/span><\/b><\/p>\n<ul>\n<li><b>Daten (XML)<\/b>: XML-Datei mit den eigentlichen Daten<\/li>\n<li><b>Schema der Daten (XSD)<\/b>: Schema, das zur Pr&uuml;fung der Validit&auml;t der im XML-Dokument enthaltenen Daten verwendet wird<\/li>\n<li><b>Pr&auml;sentation Ihrer Daten (XSL)<\/b>: Schema, das zur Umformung der Daten herangezogen werden kann<\/li>\n<\/ul>\n<p>Um die letzten beiden wollen wir uns in diesem Beitrag nicht k&uuml;mmern. Aber vielleicht liefert die Schaltfl&auml;che <b>Weitere&#8230; <\/b>noch interessante Optionen Sie &ouml;ffnet einen weiteren Dialog namens <b>XML exportieren<\/b>, der wie in Bild 4 aussieht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_005.png\" alt=\"Weitere Optionen f&uuml;r den XML-Export\" width=\"549,5155\" height=\"356,0782\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Weitere Optionen f&uuml;r den XML-Export<\/span><\/b><\/p>\n<p>Hier finden Sie f&uuml;r jede der drei in der vorherigen Abbildung m&ouml;glichen Exportdateien einen Registerreiter mit weiteren Einstellungen. F&uuml;r uns ist nur die erste Registerkarte interessant, da wir ja keine XSL- oder XSD-Datei exportieren wollen, sondern nur die reine Daten-Datei.<\/p>\n<p>Im TreeView-Steuerelement mit der &uuml;berschrift <b>Zu exportierende Daten <\/b>finden Sie ganz oben die Tabelle, die wir beim Aufrufen des Ribbon-Befehls <b>Externe Daten|Exportieren|XML-Datei <\/b>markiert hatten. Unterhalb davon finden wir zwei verschiedene Arten von Eintr&auml;gen:<\/p>\n<ul>\n<li>Namen von Tabellen, in diesem Fall <b>tblBestelldetails<\/b>, und<\/li>\n<li>den Eintrag <b>Daten nachschlagen <\/b>mit weiteren untergeordneten Tabellennamen, zum Beispiel <b>tblKategorien <\/b>oder <b>tblLieferanten<\/b>.<\/li>\n<\/ul>\n<p>Die unter <b>Daten nachschlagen <\/b>aufgef&uuml;hrten Tabellen sind solche Tabellen, die von der Haupttabelle <b>tblArtikel <\/b>aus per Fremdschl&uuml;sselfeld referenziert werden, aus der also Werte f&uuml;r den aktuellen Datensatz der Tabelle <b>tblArtikel <\/b>ausgew&auml;hlt werden k&ouml;nnen.<\/p>\n<p>Bei den direkt untergeordneten Tabellen handelt es sich wiederum um Tabellen, die selbst ein Nachschlagefeld zur Auswahl eines Datensatzes der Haupttabelle enthalten. Im Beispiel der Bestellverwaltung handelt es sich dabei um die Tabelle <b>tblBestelldetails<\/b>, welche &uuml;ber die beiden Fremdschl&uuml;sselfelder <b>ArtikelID <\/b>und <b>BestellungID <\/b>die Zuordnung von Artikeln zu einer Bestellung vornimmt.<\/p>\n<h2>Zu exportierende Datens&auml;tze filtern<\/h2>\n<p>Neben der Auswahl der einzuschlie&szlig;enden Daten finden Sie rechts einen Bereich namens <b>Zu exportierende Datens&auml;tze<\/b>, der die folgenden drei Optionen bereitstellt:<\/p>\n<ul>\n<li><b>Alle Datens&auml;tze<\/b><\/li>\n<li><b>Bestehenden Filter anwenden<\/b><\/li>\n<li><b>Aktueller Datensatz<\/b><\/li>\n<\/ul>\n<p>Allerdings ist aktuell nur die erste Option aktiviert. Wie aber k&ouml;nnen wir die anderen beiden Optionen nutzen<\/p>\n<h2>Aktuellen Datensatz exportieren<\/h2>\n<p>Die Option <b>Aktueller Datensatz <\/b>ist relativ einfach verf&uuml;gbar: Dazu &ouml;ffnen Sie lediglich zuerst die Tabelle mit den zu exportierenden Daten, in diesem Beispiel <b>tblArtikel<\/b>, und klicken dann im Ribbon auf den Befehl <b>Externe Daten|Exportieren|XML-Datei<\/b>. Nach der Angabe der Zieldatei und einem Klick auf die <b>OK<\/b>-Schaltfl&auml;che im Dialog <b>Exportieren &#8211; XML-Datei <\/b>sowie auf die Schaltfl&auml;che <b>Weitere&#8230; <\/b>des dann erscheinenden Dialogs <b>XML exportieren <\/b>taucht der Dialog mit den weiteren Optionen wie in Bild 5 auf.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_006.png\" alt=\"Export eines einzigen Datensatzes\" width=\"649,4275\" height=\"449,0218\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Export eines einzigen Datensatzes<\/span><\/b><\/p>\n<p>Hier finden Sie nun die aktivierte Option <b>Aktueller Datensatz <\/b>vor, die wir nun ausw&auml;hlen. Der Export eines einzigen Datensatzes einer Tabelle sollte eine &uuml;berschaubare XML-Datei ergeben, anhand derer wir uns einen ersten &uuml;berblick &uuml;ber das Ergebnis verschaffen k&ouml;nnen. Und wie erwartet sieht das Ergebnis wie folgt recht &uuml;bersichtlich aus:<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" generated=\"2016-07-02T19:01:14\"&gt;\r\n&lt;tblArtikel&gt;\r\n&lt;ArtikelID&gt;1&lt;\/ArtikelID&gt;\r\n&lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n&lt;LieferantID&gt;1&lt;\/LieferantID&gt;\r\n&lt;KategorieID&gt;1&lt;\/KategorieID&gt;\r\n&lt;Liefereinheit&gt;10 Kartons x 20 Beutel&lt;\/Liefereinheit&gt;\r\n&lt;Einzelpreis&gt;9&lt;\/Einzelpreis&gt;\r\n&lt;Lagerbestand&gt;39&lt;\/Lagerbestand&gt;\r\n&lt;BestellteEinheiten&gt;0&lt;\/BestellteEinheiten&gt;\r\n&lt;Mindestbestand&gt;10&lt;\/Mindestbestand&gt;\r\n&lt;Auslaufartikel&gt;0&lt;\/Auslaufartikel&gt;\r\n&lt;\/tblArtikel&gt;\r\n&lt;\/dataroot&gt;<\/pre>\n<p>Wir erhalten also neben dem Element <b>dataroot <\/b>f&uuml;r den aktuellen Datensatz ein Element des Typs <b>tblArtikel<\/b>, welches f&uuml;r jeden Feldnamen der Tabelle ein untergeordnetes Element enth&auml;lt, dessen Wert dem Feldwert entspricht.<\/p>\n<h2>Gefilterte Datens&auml;tze exportieren<\/h2>\n<p>Aber vielleicht m&ouml;chten Sie nicht nur einen bestimmten oder alle Datens&auml;tze exportieren, sondern die aktuell per Filter festgelegten Datens&auml;tze. Dazu legen wir f&uuml;r die in der Datenblattansicht ge&ouml;ffnete Tabelle einen Filter fest, der zum Beispiel nur die Datens&auml;tze liefert, deren Artikelname mit dem Buchstaben <b>A <\/b>beginnt (s. Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_004.png\" alt=\"Filtern der Datens&auml;tze der Tabelle tblArtikel\" width=\"599,4715\" height=\"276,4643\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Filtern der Datens&auml;tze der Tabelle tblArtikel<\/span><\/b><\/p>\n<p>Wenn Sie nun den Export in das XML-Format wie in den vorherigen Anl&auml;ufen starten, erscheinen im Dialog alle Optionen unter <b>Zu exportierende Datens&auml;tze <\/b>aktiviert (s. Bild 7). Sie k&ouml;nnen nun also auch einen Export durchf&uuml;hren, der nur die mit A beginnenden Artikel enth&auml;lt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_007.png\" alt=\"Ausgabe der Daten mit dem aktuell festgelegten Filter\" width=\"549,5155\" height=\"356,0782\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Ausgabe der Daten mit dem aktuell festgelegten Filter<\/span><\/b><\/p>\n<h2>Weitere Daten hinzuf&uuml;gen: Lookupdaten<\/h2>\n<p>Nun wollen wir Lookupdaten hinzuf&uuml;gen, im Falle der Tabelle <b>tblArtikel <\/b>also die Daten der Tabellen <b>tblKategorien <\/b>und <b>tblLieferanten<\/b>. Nun wird es interessant, denn wir k&ouml;nnen dies auf mindestens zwei Arten erledigen: indem wir einfach die entsprechenden Werte wie den Kategorienamen oder den Lieferantennamen anstelle der Werte der Felder <b>KategorieID <\/b>oder <b>LieferantID <\/b>exportieren oder indem wir jeweils die kompletten verkn&uuml;pften Datens&auml;tze der beiden Tabellen <b>tblKategorien <\/b>und <b>tblLieferant <\/b>zum Datensatz der Tabelle <b>tblArtikel <\/b>hinzuf&uuml;gen. F&uuml;r den ersten Fall legen wir einfach eine Abfrage an, welche alle Felder der Tabelle <b>tblArtikel <\/b>mit Ausnahme von <b>KategorieID <\/b>und <b>LieferantID <\/b>enth&auml;lt, daf&uuml;r aber die Felder <b>Kategoriename <\/b>der Tabelle <b>tblKategorien <\/b>und <b>Firma <\/b>der Tabelle <b>tblLieferanten<\/b>. Die Abfrage sieht etwa wie in Bild 8 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_008.png\" alt=\"Abfrage f&uuml;r den Export der Daten\" width=\"700\" height=\"325,0266\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Abfrage f&uuml;r den Export der Daten<\/span><\/b><\/p>\n<p>Um den Export zu starten, verwenden wir nun eine alternative Variante zum entsprechenden Ribbon-Eintrag: Diesmal klicken wir mit der rechten Maustaste auf den entsprechenden Eintrag im Navigationsbereich von Access, n&auml;mlich auf <b>qryArtikelMitKategorieUndLieferant<\/b>, und w&auml;hlen aus dem Kontextmen&uuml; den Befehl <b>Exportieren|XML-Datei <\/b>aus (s. Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_009.png\" alt=\"Starten des Exports per Kontextmen&uuml;\" width=\"549,5155\" height=\"577,339\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Starten des Exports per Kontextmen&uuml;<\/span><\/b><\/p>\n<p>Das Ergebnis sieht nun etwas anders aus, als wenn wir direkt die Tabelle <b>tblArtikel <\/b>exportieren. Diesmal erhalten wir statt der Elemente <b>KategorieID <\/b>und <b>Lieferant-ID <\/b>mit den Fremdschl&uuml;sselwerten die Elemente <b>Kategoriename <\/b>und <b>Firma <\/b>mit den entsprechenden Bezeichnungen (s. Listing 1).<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" generated=\"2016-07-03T12:38:01\"&gt;\r\n     &lt;qryArtikelMitKategorieUndLieferant&gt;\r\n         &lt;ArtikelID&gt;1&lt;\/ArtikelID&gt;\r\n         &lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n         &lt;Firma&gt;Exotic Liquids&lt;\/Firma&gt;\r\n         &lt;Kategoriename&gt;Getr&auml;nke&lt;\/Kategoriename&gt;\r\n         &lt;Liefereinheit&gt;10 Kartons x 20 Beutel&lt;\/Liefereinheit&gt;\r\n         &lt;Einzelpreis&gt;9&lt;\/Einzelpreis&gt;\r\n         &lt;Lagerbestand&gt;39&lt;\/Lagerbestand&gt;\r\n         &lt;BestellteEinheiten&gt;0&lt;\/BestellteEinheiten&gt;\r\n         &lt;Mindestbestand&gt;10&lt;\/Mindestbestand&gt;\r\n         &lt;Auslaufartikel&gt;0&lt;\/Auslaufartikel&gt;\r\n     &lt;\/qryArtikelMitKategorieUndLieferant&gt;\r\n     ...\r\n&lt;\/dataroot&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Export mit direkter Angabe der Kategorie und der Lieferanten-Firma<\/span><\/b><\/p>\n<p>F&uuml;r viele F&auml;lle wird dies reichen, aber wenn Sie die Daten des XML-Dokuments beispielsweise in einer anderen Datenbank wieder einsetzen m&ouml;chten, welche die gleiche Datenstruktur hat, ben&ouml;tigen Sie unter Umst&auml;nden die Kategorien und Lieferanten inklusive Fremdschl&uuml;ssel- und Prim&auml;rschl&uuml;sselwerten.<\/p>\n<h2>Daten verkn&uuml;pfter Tabellen exportieren<\/h2>\n<p>Wenn Sie die Daten verkn&uuml;pfter Tabellen exportieren wollen, gibt es ebenfalls verschiedene M&ouml;glichkeiten. Die erste exportiert die Daten in verschachtelter Form, und zwar so, dass in der ersten Ebene etwa die Daten der Tabelle <b>tblKategorien <\/b>landen und in untergeordneten Elementen jeweils die Datens&auml;tze der Tabelle <b>tblArtikel<\/b>. Hierbei ist zu beachten, dass zu jedem <b>Kategorien<\/b>-Element immer das komplette zugeordnete <b>Artikel<\/b>-Element angelegt wird. Diese Variante funktioniert nur, wenn Sie den Export ausgehend von einer Tabelle starten, welche das an der Beziehung beteiligte Prim&auml;rschl&uuml;sselfeld enth&auml;lt und wenn die untergeordnete Tabelle das Fremdschl&uuml;sselfeld beisteuert. Wenn Sie also etwa die Artikel als &uuml;bergeordnete Elemente und darunter die Kategorien und Lieferanten ausgeben wollen, gelingt dies &uuml;ber den Assistenten nicht. Dies k&ouml;nnen Sie allerdings per VBA erledigen, wie Sie im Beitrag <b>XML-Export mit VBA <\/b>(<b>www.access-im-unternehmen.de\/1046<\/b>) erfahren werden.<\/p>\n<p><!--30percent--><\/p>\n<p>Die zweite exportiert einfach die Inhalte der betroffenen Tabellen in das XML-Dokument, und zwar so, dass zuerst alle Artikeldatens&auml;tze in Form entsprechender Elemente und dann alle Kategorie- und Lieferantendatens&auml;tze in die XML-Datei geschrieben werden. Die Beziehung zueinander kann dann &uuml;ber die Fremdschl&uuml;sselfelder der Tabelle <b>tblArtikel <\/b>ermittelt werden, die ja ebenfalls in die <b>Artikel<\/b>-Elemente &uuml;bernommen werden.<\/p>\n<p>Diese Variante wird vom Assistenten automatisch gew&auml;hlt, wenn die Tabelle, f&uuml;r die Sie den Export angesto&szlig;en haben, die Fremdschl&uuml;sselfelder zur Verkn&uuml;pfung mit den Werten der Prim&auml;rschl&uuml;sselfelder der verkn&uuml;pften Tabellen enth&auml;lt.<\/p>\n<p>Wir schauen uns nun beide Varianten an.<\/p>\n<h2>Daten verschachtelt speichern<\/h2>\n<p>Bei der ersten Variante markieren wir die Tabelle <b>tblKategorien <\/b>und starten dann den Export entweder &uuml;ber den entsprechenden Ribbon- oder Kontextmen&uuml;-Eintrag. In den erweiterten Optionen w&auml;hlen wir nun die Tabelle <b>tblKategorien <\/b>sowie die Tabellen <b>tblArtikel <\/b>aus (s. Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_010.png\" alt=\"Konfiguration f&uuml;r den Export als verschachtelte Elemente\" width=\"549,5155\" height=\"356,0782\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Konfiguration f&uuml;r den Export als verschachtelte Elemente<\/span><\/b><\/p>\n<p>Das Ergebnis sehen Sie in Listing 2. Es gibt zu jedem Datensatz der Tabelle <b>tblKategorien <\/b>ein Element namens <b>tblKategorien<\/b>, das die Felder und Feldwerte als Unterelemente enth&auml;lt &#8211; also etwa <b>KategorieID<\/b>, <b>Kategoriename <\/b>et cetera. Das Element<b> Abbildung <\/b>enth&auml;lt den Bin&auml;rcode der im Anlagefeld <b>Abbildung <\/b>gespeicherten Bilddatei. Au&szlig;erdem gibt es f&uuml;r jeden Eintrag der Tabelle <b>tblArtikel<\/b>, der mit der jeweiligen Kategorie verkn&uuml;pft ist, ein Unterelement namens <b>tblArtikel<\/b>. Diese enthalten jeweils alle Felder der Tabelle <b>tblArtikel <\/b>samt Feldwert.<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" generated=\"2016-07-03T13:22:52\"&gt;\r\n     &lt;tblKategorien&gt;\r\n         &lt;KategorieID&gt;1&lt;\/KategorieID&gt;\r\n         &lt;Kategoriename&gt;Getr&auml;nke&lt;\/Kategoriename&gt;\r\n         &lt;Beschreibung&gt;Alkoholfreie Getr&auml;nke, Kaffee, Tee, Bier&lt;\/Beschreibung&gt;\r\n         &lt;Abbildung&gt;FRwvAAIAAAANAA4AFAAhAP\/\/\/\/9CaXRtYXAgSW1hZ2UA...&lt;\/Abbildung&gt;\r\n         &lt;tblArtikel&gt;\r\n             &lt;ArtikelID&gt;1&lt;\/ArtikelID&gt;\r\n             &lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n             &lt;LieferantID&gt;1&lt;\/LieferantID&gt;\r\n             &lt;KategorieID&gt;1&lt;\/KategorieID&gt;\r\n             ...\r\n         &lt;\/tblArtikel&gt;\r\n         &lt;tblArtikel&gt;\r\n             &lt;ArtikelID&gt;2&lt;\/ArtikelID&gt;\r\n             &lt;Artikelname&gt;Chang&lt;\/Artikelname&gt;\r\n             ...\r\n         &lt;\/tblArtikel&gt;\r\n         ...\r\n     &lt;\/tblKategorien&gt;\r\n     &lt;tblKategorien&gt;\r\n         &lt;KategorieID&gt;2&lt;\/KategorieID&gt;\r\n         &lt;Kategoriename&gt;Gew&uuml;rze&lt;\/Kategoriename&gt;\r\n         ...\r\n     &lt;\/tblKategorien&gt;\r\n     ...\r\n&lt;\/dataroot&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Export verschachtelter Daten<\/span><\/b><\/p>\n<h2>Elementnamen anpassen<\/h2>\n<p>F&uuml;r den einen oder anderen Anwendungsfall mag es hinderlich sein, wenn das <b>Artikel<\/b>-Element beispielsweise <b>tblArtikel<\/b> hei&szlig;t:<\/p>\n<pre>&lt;tblArtikel&gt;\r\n...\r\n&lt;\/tblArtikel&gt;<\/pre>\n<p>F&uuml;r einfache Konstellationen mit nur einer einzigen zu exportierenden Tabelle k&ouml;nnen Sie dies &auml;ndern, indem Sie einfach eine Abfrage anlegen, die lediglich die zu exportierende Tabelle mit allen Feldern enth&auml;lt, und dieser den gleichen Namen geben, unter dem auch die Elemente im XML-Dokument erscheinen sollen &#8211; f&uuml;r die Tabelle <b>tblArtikel <\/b>also etwa mit der Abfrage aus Bild 11. Das Ergebnis sieht nun wie folgt aus &#8211; statt <b>tblArtikel <\/b>hei&szlig;en die Elemente nun <b>Artikel<\/b>:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_011.png\" alt=\"Der Export dieser Tabelle liefert Elemente mit dem Namen Artikel.\" width=\"700\" height=\"356,8786\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Der Export dieser Tabelle liefert Elemente mit dem Namen Artikel.<\/span><\/b><\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" \r\n         generated=\"2016-07-03T17:24:37\"&gt;\r\n     &lt;Artikel&gt;\r\n         &lt;ArtikelID&gt;1&lt;\/ArtikelID&gt;\r\n         &lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n         &lt;Liefereinheit&gt;10 Kartons x 20 B.&lt;\/Liefereinheit&gt;\r\n         &lt;Einzelpreis&gt;9&lt;\/Einzelpreis&gt;\r\n         &lt;Lagerbestand&gt;39&lt;\/Lagerbestand&gt;\r\n         &lt;BestellteEinheiten&gt;0&lt;\/BestellteEinheiten&gt;\r\n         &lt;Mindestbestand&gt;10&lt;\/Mindestbestand&gt;\r\n         ...\r\n     &lt;\/Artikel&gt;\r\n     ...\r\n&lt;\/dataroot&gt;<\/pre>\n<p>Aber gelingt dies auch, wenn wir mehrere verkn&uuml;pfte Tabellen exportieren m&ouml;chten Probieren wir es mit Kategorien und Artikeln aus. Dazu erstellen Sie auch f&uuml;r die Tabelle <b>tblKategorien <\/b>eine entsprechende Abfrage, die diesmal schlicht <b>Kategorie <\/b>hei&szlig;t. Um das XML-Dokument &uuml;berschaubar zu halten, lassen wir bei der Definition dieser Abfrage das Feld <b>Abbildung <\/b>weg (s. Bild 12).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_012.png\" alt=\"Abfrage f&uuml;r den Export der Daten der Tabelle tblKategorien unter dem Elementnamen Kategorie\" width=\"424,6255\" height=\"319,1752\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Abfrage f&uuml;r den Export der Daten der Tabelle tblKategorien unter dem Elementnamen Kategorie<\/span><\/b><\/p>\n<p>Nun wollen wir einen Export starten, der die Datens&auml;tze der Abfrage <b>Kategorie <\/b>enth&auml;lt und als untergeordnete Elemente die jeweils der aktuellen Kategorie zugeordneten Datens&auml;tze der Tabelle <b>tblArtikel <\/b>&#8211; allerdings &uuml;ber die Abfrage <b>Artikel<\/b>, um auch hier den Elementnamen <b>Artikel <\/b>statt <b>tblArtikel <\/b>zu erhalten.<\/p>\n<p>Nach dem Start des Exports der Abfrage <b>Kategorie <\/b>und der Anzeige der erweiterten Optionen l&auml;sst sich die Abfrage <b>Artikel <\/b>allerdings nicht in der Liste der verkn&uuml;pften Elemente blicken (s. Bild 13). Hier erscheinen lediglich die Tabellen, die auch f&uuml;r die Exportdatenquelle <b>tblKategorien <\/b>bereits angezeigt wurden. Der Grund ist schnell gefunden: Der Dialog zeigt n&auml;mlich nur die Elemente an, die auch mit dem jeweiligen Objekt beziehungsweise mit dem zugrunde liegenden Objekt verkn&uuml;pft sind. Der Assistent erkennt also noch, dass <b>tblArtikel <\/b>mit <b>tblKategorien <\/b>verkn&uuml;pft ist und die Abfrage <b>Kategorie <\/b>auf <b>tblKategorien <\/b>basiert &#8211; also wird <b>tblArtikel <\/b>auch als zus&auml;tzliche Option f&uuml;r die zu exportierende Abfrage <b>Kategorie <\/b>angezeigt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_013.png\" alt=\"tblArtikel statt Artikel: So war das nicht geplant!\" width=\"499,5594\" height=\"323,7075\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: tblArtikel statt Artikel: So war das nicht geplant!<\/span><\/b><\/p>\n<p>Dass die Abfrage <b>Artikel <\/b>auf <b>tblArtikel <\/b>basiert und wir uns deshalb w&uuml;nschen, dass diese Abfrage auch in der Liste der verkn&uuml;pften und exportf&auml;higen Datenquellen auftaucht, akzeptiert Access nicht.<\/p>\n<h2>Beziehung zwischen zwei Abfragen herstellen<\/h2>\n<p>Aber das ist kein Problem, denn wir k&ouml;nnen nachhelfen: Dazu brauchen wir lediglich eine weitere Beziehung zwischen diesen beiden Abfragen hinzuzuf&uuml;gen. Dazu &ouml;ffnen Sie das Beziehungsfenster &uuml;ber den Ribbon-Eintrag <b>Daten-banktools|Beziehungen|Beziehungen <\/b>und ziehen die beiden Abfragen <b>Artikel <\/b>und <b>Kategorie <\/b>hinein.<\/p>\n<p>Nun ziehen Sie das Feld <b>KategorieID <\/b>der Abfrage <b>Kategorie <\/b>auf das gleichnamige Feld der Abfrage <b>Artikel<\/b>, sodass der Dialog <b>Beziehungen bearbeiten <\/b>erscheint.<\/p>\n<p>Hier stellen Sie fest, dass sowohl unter <b>Tabelle\/Abfrage <\/b>als auch unter <b>Verwandte Tabelle\/Abfrage <\/b>das Feld <b>KategorieID <\/b>ausgew&auml;hlt ist, und schlie&szlig;en den Dialog (s. Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_014.png\" alt=\"Herstellen einer Verkn&uuml;pfung zwischen zwei Abfragen\" width=\"549,5155\" height=\"379,096\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Herstellen einer Verkn&uuml;pfung zwischen zwei Abfragen<\/span><\/b><\/p>\n<p>Schlie&szlig;en Sie auch das Beziehungsfenster und best&auml;tigen Sie gegebenenfalls das Speichern der durchgef&uuml;hrten &auml;nderungen.<\/p>\n<p>Wenn Sie nun erneut den Export der Abfrage <b>Kategorie <\/b>starten und die erweiterten Export-Optionen &ouml;ffnen, finden Sie die Ansicht aus Bild 15 vor.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_015.png\" alt=\"Export-Optionen f&uuml;r die neu Verkn&uuml;pfung\" width=\"499,5594\" height=\"323,7075\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Export-Optionen f&uuml;r die neu Verkn&uuml;pfung<\/span><\/b><\/p>\n<p>Alle verkn&uuml;pften Tabellen sind verschwunden, stattdessen zeigt das <b>TreeView<\/b>-Steuerelement unterhalb des <b>Kategorie<\/b>-Elements das Element <b>Artikel <\/b>an. Nun exportieren wir die Daten dieser beiden Abfragen und schauen uns die resultierende XML-Datei an.<\/p>\n<p>Das Ergebnis finden Sie in Listing 3. Nun passt es: Die Daten der Tabelle <b>tblKategorien <\/b>werden unter dem Elementnamen <b>Kategorie <\/b>abgebildet, die Daten der Tabelle <b>tblArtikel <\/b>unter <b>Artikel<\/b>.<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" generated=\"2016-07-03T17:55:34\"&gt;\r\n     &lt;Kategorie&gt;\r\n         &lt;KategorieID&gt;1&lt;\/KategorieID&gt;\r\n         &lt;Kategoriename&gt;Getr&auml;nke&lt;\/Kategoriename&gt;\r\n         &lt;Beschreibung&gt;Alkoholfreie Getr&auml;nke, Kaffee, Tee, Bier&lt;\/Beschreibung&gt;\r\n         &lt;Artikel&gt;\r\n             &lt;ArtikelID&gt;1&lt;\/ArtikelID&gt;\r\n             &lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n             ...\r\n             &lt;KategorieID&gt;1&lt;\/KategorieID&gt;\r\n         &lt;\/Artikel&gt;\r\n         &lt;Artikel&gt;\r\n             &lt;ArtikelID&gt;2&lt;\/ArtikelID&gt;\r\n             &lt;Artikelname&gt;Chang&lt;\/Artikelname&gt;\r\n             ...\r\n         &lt;\/Artikel&gt;\r\n         ...\r\n     &lt;\/Kategorie&gt;\r\n     ...\r\n&lt;\/dataroot&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Export der Daten der Tabellen tblKategorien und tblArtikel mit den gew&uuml;nschten Elementnamen<\/span><\/b><\/p>\n<h2>Weitere &auml;nderungen<\/h2>\n<p>Es st&ouml;rt allerdings noch die Bezeichnung <b>dataroot<\/b> f&uuml;r das oberste Element des XML-Dokuments. Hier h&auml;tten wir gern das folgende Element:<\/p>\n<pre>&lt;Bestellverwaltung ...&gt;\r\n...\r\n&lt;\/Bestellverwaltung&gt;<\/pre>\n<p>Und grunds&auml;tzlich w&auml;re es ja schon praktisch, wenn wir nicht erst f&uuml;r jede Tabelle eine Abfrage erstellen m&uuml;ssten, die den Namen des gew&uuml;nschten Elements enth&auml;lt, bevor wir die Daten in das XML-Format exportieren.<\/p>\n<p>Vielleicht m&ouml;chten Sie ja auch noch weitere &auml;nderungen herbeif&uuml;hren: So w&auml;re es beispielsweise praktisch, das Element <b>KategorieID <\/b>aus dem <b>Artikel<\/b>-Element zu entfernen, denn das &uuml;bergeordnete <b>Kategorie<\/b>-Element enth&auml;lt ja schon ein Element mit der <b>KategorieID <\/b>der zugeordneten Kategorie.<\/p>\n<p>Es gibt aber noch andere &auml;nderungsw&uuml;nsche:<\/p>\n<ul>\n<li>Die Elemente sollen nicht nach den Tabellen benannt werden (also <b>Kategorie <\/b>statt <b>tblKategorien<\/b>, <b>Artikel <\/b>statt <b>tblArtikel<\/b>).<\/li>\n<li>Es sollen nur einige Felder exportiert werden. Aus der Tabelle <b>tblKategorien <\/b>beispielsweise nur die Felder <b>KategorieID<\/b>, <b>Kategoriename <\/b>und <b>Beschreibung<\/b>, aus der Tabelle <b>tblArtikel <\/b>nur die Felder <b>ArtikelID<\/b>, <b>Artikelname <\/b>und <b>Einzelpreis<\/b>.<\/li>\n<li>Die Prim&auml;rschl&uuml;sselwerte aus den Feldern <b>KategorieID <\/b>und <b>ArtikelID <\/b>sollen dabei nicht als einzelne Elemente gespeichert werden, sondern als Attribut des jeweiligen <b>Kategorie<\/b>&#8211; beziehungsweise <b>Artikel<\/b>-Elements &#8211; also etwa so: <b><Kategorie KategorieID=\"1\"><\/b><\/li>\n<\/ul>\n<h2>XML-Dokument transformieren<\/h2>\n<p>Solche &auml;nderungen k&ouml;nnen wir nicht mehr durch Tricks wie etwa das Anlegen von Abfragen erledigen, die nach dem gew&uuml;nschten Elementnamen benannt werden oder die nur die ben&ouml;tigten Felder enthalten.<\/p>\n<p>Sp&auml;testens das Anlegen des Prim&auml;rschl&uuml;sselwertes als Attribut des Elements l&auml;sst diese Vorgehensweise scheitern.<\/p>\n<p>Hier kommt eine weitere Option des erweiterten Dialogs f&uuml;r den Export ins Spiel, n&auml;mlich der, den Sie &uuml;ber die Schaltfl&auml;che <b>Transformieren <\/b>&ouml;ffnen. Dieser Dialog sieht wie in Bild 16 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_1045_016.png\" alt=\"Auswahl der Transformationsdatei\" width=\"424,6255\" height=\"371,5473\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Auswahl der Transformationsdatei<\/span><\/b><\/p>\n<p>Hier klicken Sie auf die Schaltfl&auml;che <b>Hinzuf&uuml;gen&#8230;<\/b>, wenn Sie bereits eine <b>.xslt<\/b>-Datei erstellt haben, um das exportierte XML-Dokument zu transformieren. Dies haben wir noch nicht erledigt, also schauen wir uns zun&auml;chst an, wie eine solche Datei aussehen k&ouml;nnte.<\/p>\n<p>F&uuml;r die Beschreibung der Transformation einer XML-Datei gibt es eine eigene Sprache, die ihrerseits einen Aufbau wie eine XML-Datei hat, aber Steueranweisungen und Inhalte vermischt (etwa wie PHP und HTML).<\/p>\n<p>Die <b>.xslt<\/b>-Datei, die unsere Anforderungen umsetzt, sieht wie in Listing 4 aus. Alle Elemente, die mit <b>xsl: <\/b>beginnen, enthalten Steueranweisungen, die &uuml;brigen Elemente werden direkt &uuml;bernommen.<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"ISO-8859-1\"&gt; \r\n&lt;xsl:stylesheet version=\"1.0\" \r\n   xmlns:xsl=\"http:\/\/www.w3.org\/1999\/XSL\/Transform\"\r\n   xmlns=\"http:\/\/www.w3.org\/TR\/REC-html40\"&gt; \r\n   &lt;xsl:template match=\"dataroot\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;Bestellverwaltung&gt;&lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsl:for-each select=\"tblKategorien\"&gt;\r\n     &lt;Kategorie&gt;\r\n       &lt;xsl:attribute name=\"KategorieID\"&gt;\r\n         &lt;xsl:value-of select=\"KategorieID\"\/&gt;\r\n       &lt;\/xsl:attribute&gt;\r\n       &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n       &lt;Kategoriename&gt;\r\n         &lt;xsl:value-of select=\"Kategoriename\"\/&gt;\r\n       &lt;\/Kategoriename&gt;\r\n       &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n       &lt;Beschreibung&gt;\r\n         &lt;xsl:value-of select=\"Beschreibung\"\/&gt;\r\n       &lt;\/Beschreibung&gt;\r\n       &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n       &lt;xsl:for-each select=\"tblArtikel\"&gt;\r\n         &lt;Artikel&gt;\r\n           &lt;xsl:attribute name=\"ArtikelID\"&gt;\r\n             &lt;xsl:value-of select=\"ArtikelID\"\/&gt;\r\n           &lt;\/xsl:attribute&gt;\r\n           &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n           &lt;Artikelname&gt;\r\n             &lt;xsl:value-of select=\"Artikelname\"\/&gt;\r\n           &lt;\/Artikelname&gt;\r\n           &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n         &lt;\/Artikel&gt;\r\n         &lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n       &lt;\/xsl:for-each&gt;\r\n     &lt;\/Kategorie&gt;&lt;xsl:text&gt;&#xa;&lt;\/xsl:text&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsl:for-each&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Bestellverwaltung&gt;\r\n   &lt;\/xsl:template&gt;\r\n&lt;\/xsl:stylesheet&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: .xslt-Datei f&uuml;r die Transformierung des exportierten XML-Dokuments<\/span><\/b><\/p>\n<p>Das bedeutet, dass die Zeile mit der Angabe des Dokumenttyps (<b>&lt;xml &#8230;<\/b>) direkt in das Zieldokument &uuml;bernommen wird. Die zweite Zeile gibt die <b>xsl<\/b>-Version an. Interessant wird es mit dem Element mit dem Schl&uuml;sselwort <b>template<\/b>. Dieses legt fest, f&uuml;r welches Element die untergeordneten Anweisungen durchgef&uuml;hrt werden sollen.<\/p>\n<p>Das gesuchte Element geben wir mit dem Attribut <b>match=&#8220;dataroot&#8220; <\/b>an. Dies entspricht dem Root-Element namens <b>dataroot <\/b>des von Access automatisch erzeugten Exports, wie Sie in den Exportbeispielen weiter oben sehen k&ouml;nnen.<\/p>\n<p>Wird dieses Element gefunden, soll das &ouml;ffnende Element <b><Bestellverwaltung><\/b> angelegt werden, gefolgt von einem Zeilenumbruch, der durch <b><xsl:text>&#xa;<\/xsl:text><\/b> angegeben wird (die Zeilenumbr&uuml;che sind f&uuml;r die Verarbeitung des XML-Dokuments nicht wichtig, aber f&uuml;r die Lesbarkeit der Ausgabe durch das menschliche Auge). Dann folgt eine <b>for-each<\/b>-Schleife &uuml;ber alle Elemente mit dem Namen <b>tblKategorien<\/b>. F&uuml;r all diese soll ein Element namens <b><Kategorie> <\/b>ausgegeben werden. Wie oben angegeben, wollen wir diesem Element den Wert des Feldes <b>KategorieID <\/b>als Attribut mitgeben.<\/p>\n<p>Das erledigen wir mit dem <b>xsl:attribute<\/b>-Element direkt unterhalb des <b><Kategorie><\/b>-Elements, dem wir mit <b>name <\/b>die Bezeichnung des Attributs und mit dem Ausdruck <b><xsl:value-of select=\"KategorieID\"\/> <\/b>den Wert des Elements <b>KategorieID <\/b>des urspr&uuml;nglichen XML-Dokuments mitgeben. Danach folgen zwei Elemente namens <b>Kategoriename <\/b>und <b>Beschreibung<\/b>. Beiden weisen wir mit den Anweisungen <b><xsl:value-of select=\"Kategoriename\"\/> <\/b>und <b><xsl:value-of select=\"Beschreibung\"\/> <\/b>die entsprechenden Werte des aktuellen Elements zu.<\/p>\n<p>Unterhalb dieser Elemente wollen wir nun f&uuml;r jedes <b>Kategorie<\/b>-Element die verkn&uuml;pften Artikel aus der Tabelle <b>tblArtikel <\/b>ausgeben &#8211; mit dem Wert des Feldes <b>ArtikelID <\/b>als Attribut und dem Namen des Artikels in einem Unterelement namens <b>Artikelname<\/b>.<\/p>\n<p>Daf&uuml;r nutzen wir wiederum eine <b>for-each<\/b>-Schleife, die sich diesmal auf die Elemente mit dem Namen <b>tblArtikel <\/b>beziehen. Dass wir hier <b>tblArtikel <\/b>und oben <b>tblKategorien <\/b>als Wert f&uuml;r das Attribut <b>select <\/b>angegeben haben, ist m&ouml;glich, weil es sich hierbei um eine relative Angabe handelt. Wir befinden uns vor der Abarbeitung der Schleife &uuml;ber alle <b>tblKategorien<\/b>-Elemente im Element <b>dataroot<\/b>, somit k&ouml;nnen wir mit dem <b>select<\/b>-Attribut der <b>for-each<\/b>-Schleife direkt auf <b>tblKategorien <\/b>als Unterelemente zugreifen. Gleiches gilt f&uuml;r die <b>for-each<\/b>-Schleife mit <b>select=&#8220;tblArtikel&#8220;<\/b>: Wir befinden uns in der Abarbeitung der <b>tblKategorien<\/b>-Elemente und k&ouml;nnen mit <b>select <\/b>direkt auf die untergeordneten Elemente zugreifen.<\/p>\n<p>So f&uuml;gen wir nun f&uuml;r jedes Element mit dem Namen <b>tblArtikel <\/b>ein neues Element namens <b>Artikel <\/b>zum XML-Dokument hinzu, legen f&uuml;r das Attribut <b>ArtikelID <\/b>den Wert des entsprechenden Elements des Ausgangsdokuments fest und f&uuml;gen ein Unterelement namens <b>Artikelname <\/b>mit dem Artikelnamen als Wert hinzu. Nachdem wir mit <b><Artikel> <\/b>jeweils ein &ouml;ffnendes Element hinzugef&uuml;gt haben, fehlt noch das schlie&szlig;ende Element (<b>&lt;\/Artikel&gt;<\/b>), bevor wir die Schleife mit <b><xsl:for-each> <\/b>beenden.<\/p>\n<p>Das Gleiche erledigen wir noch mit dem schlie&szlig;enden Element <b>&lt;\/Kategorie&gt; <\/b>und dem Ende der &auml;u&szlig;eren Schleife (<b><\/xsl:for-each><\/b>). Schlie&szlig;lich ben&ouml;tigen wir noch ein schlie&szlig;endes <b>&lt;\/Bestellverwaltung&gt;<\/b>-Element sowie die beiden Anweisungen <b><\/xsl:template> <\/b>und <b><\/xsl:stylesheet><\/b>, mit denen die Bearbeitung abgeschlossen wird.<\/p>\n<p>Und ob Sie es glauben oder nicht: Wenn Sie diese paar Zeilen Code unter dem Namen <b>Kategorie.xslt <\/b>speichern, die Datei als Transformationsdatei beim Export der Tabelle <b>tblKategorien<\/b> angeben und dort noch die Tabelle <b>tblArtikel <\/b>hinzuf&uuml;gen, erhalten Sie ein XML-Dokument wie in Listing 5 &#8211; also genau wie gew&uuml;nscht.<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-16\"&gt;\r\n&lt;Bestellverwaltung xmlns=\"http:\/\/www.w3.org\/TR\/REC-html40\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;Kategorie KategorieID=\"1\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Kategoriename&gt;Getr&auml;nke&lt;\/Kategoriename&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Beschreibung&gt;Alkoholfreie Getr&auml;nke, Kaffee, Tee, Bier&lt;\/Beschreibung&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"1\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Chai&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"2\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Chang&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"24\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Guaran\u00e1 Fant\u00e1stica&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"34\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Sasquatch Ale&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n                 ...\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Kategorie&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;Kategorie KategorieID=\"2\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Kategoriename&gt;Gew&uuml;rze&lt;\/Kategoriename&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Beschreibung&gt;S&uuml;&szlig;e und saure So&szlig;en, Gew&uuml;rze&lt;\/Beschreibung&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"3\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Aniseed Syrup&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikel ArtikelID=\"15\"&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Artikelname&gt;Genen Shouyu&lt;\/Artikelname&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Artikel&gt;\r\n                 ...\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/Kategorie&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;...\r\n&lt;\/Bestellverwaltung&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 5: Transformiertes XML-Dokument<\/span><\/b><\/p>\n<h2>Kodierung<\/h2>\n<p>Mit der Option <b>Codierung<\/b> k&ouml;nnen Sie noch einen der Werte UTF-8 oder UTF-16 ausw&auml;hlen.<\/p>\n<h2>Alle Daten exportieren<\/h2>\n<p>Wenn Sie, ausgehend etwa von der Tabelle <b>tblBestellungen<\/b>, alle verkn&uuml;pften Tabellen ausgeben, erhalten Sie eine XML-Ausgabe, die wie folgt aufgebaut ist:<\/p>\n<pre>&lt;xml version=\"1.0\" encoding=\"UTF-8\"&gt;\r\n&lt;dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\" generated=\"2016-07-04T14:21:18\"&gt;\r\n   &lt;tblBestellungen&gt;\r\n     ...\r\n     &lt;tblBestelldetails&gt;...&lt;\/tblBestelldetails&gt;\r\n     ...\r\n   &lt;\/tblBestellungen&gt;\r\n   ...\r\n   &lt;tblArtikel&gt;...&lt;\/tblArtikel&gt;\r\n   ...\r\n   &lt;tblKategorien&gt;...&lt;\/tblKategorien&gt;\r\n   ...\r\n   &lt;tblLieferanten&gt;...&lt;\/tblLieferanten&gt;\r\n   ...\r\n   &lt;tblVersandfirmen&gt;...&lt;\/tblVersandfirmen&gt;\r\n   ...\r\n   &lt;tblKunden&gt;...&lt;\/tblKunden&gt;\r\n   ...\r\n   &lt;tblAnreden&gt;...&lt;\/tblAnreden&gt;\r\n   ...\r\n   &lt;tblPersonal&gt;...&lt;\/tblPersonal&gt;\r\n   ...\r\n&lt;\/dataroot&gt;<\/pre>\n<p>Hier sind also gerade einmal die Eintr&auml;ge der Tabelle <b>tblBestelldetails<\/b> unterhalb des jeweiligen Elements des Typs <b>tblBestellungen <\/b>integriert. Den Rest f&uuml;gt der Assistent einfach nacheinander zum XML-Dokument hinzu. Das ist aber kein Problem: Wenn Sie etwa eine neue, leere Datenbank anlegen und einen XML-Import auf Basis der so exportierten XML-Datei durchf&uuml;hren, werden die Tabellen fast vollst&auml;ndig wieder angelegt.<\/p>\n<p>Lediglich beim Import des Feldes <b>Abbildung <\/b>der Tabelle <b>tblKategorien <\/b>taucht ein Fehler auf, weil der Datentyp nicht gro&szlig; genug f&uuml;r den Inhalt gew&auml;hlt wird. Der Import in bestehende Tabellen gelingt jedoch ohne Probleme.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>F&uuml;r den Export von Tabellendaten mit dem Ziel, diese in eine Datenbank mit gleichem Aufbau wieder zu importieren, liefert die Benutzeroberfl&auml;che von Access ausreichende M&ouml;glichkeiten. Durch Anwenden einer <b>.xslt<\/b>-Datei k&ouml;nnen Sie die Daten sogar direkt beim Export so transformieren, dass diese auch f&uuml;r andere Ziele in korrekter Form vorliegen.<\/p>\n<p>Die hier vorgestellten Abl&auml;ufe lassen sich auch per VBA erledigen. Wie dies gelingt, erfahren Sie im Beitrag <b>XML-Export mit VBA <\/b>(<b>www.access-im-unternehmen.de\/1046<\/b>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&uuml;r den einen oder anderen Anwendungsfall ben&ouml;tigen Sie die Daten aus den Tabellen Ihrer Datenbank im XML-Format &#8211; zum Beispiel, um diese von einer anderen Anwendung aus einzulesen. Access stellt verschiedene M&ouml;glichkeiten f&uuml;r den Export von Daten im XML-Format zur Verf&uuml;gung. Wir schauen uns an, wie dies &uuml;ber die Benutzeroberfl&auml;che gelingt und welche M&ouml;glichkeiten VBA f&uuml;r diesen Zweck bietet &#8211; diesmal ohne Nutzung externer Bibliotheken, also ausschlie&szlig;lich mit Bordmitteln.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662016,66042016,44000021],"tags":[],"class_list":["post-55001045","post","type-post","status-publish","format-standard","hentry","category-662016","category-66042016","category-Tabellen_und_Datenmodellierung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>XML-Export ohne VBA - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"XML-Export ohne VBA\" \/>\n<meta property=\"og:description\" content=\"F&uuml;r den einen oder anderen Anwendungsfall ben&ouml;tigen Sie die Daten aus den Tabellen Ihrer Datenbank im XML-Format - zum Beispiel, um diese von einer anderen Anwendung aus einzulesen. Access stellt verschiedene M&ouml;glichkeiten f&uuml;r den Export von Daten im XML-Format zur Verf&uuml;gung. Wir schauen uns an, wie dies &uuml;ber die Benutzeroberfl&auml;che gelingt und welche M&ouml;glichkeiten VBA f&uuml;r diesen Zweck bietet - diesmal ohne Nutzung externer Bibliotheken, also ausschlie&szlig;lich mit Bordmitteln.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T15:41:54+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"24\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"XML-Export ohne VBA\",\"datePublished\":\"2020-05-22T15:41:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/\"},\"wordCount\":3640,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/1af26d0901a2410a8bb3f0aba9cd35e7\",\"articleSection\":[\"2016\",\"4\\\/2016\",\"Tabellen und Datenmodellierung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/\",\"name\":\"XML-Export ohne VBA - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/1af26d0901a2410a8bb3f0aba9cd35e7\",\"datePublished\":\"2020-05-22T15:41:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/1af26d0901a2410a8bb3f0aba9cd35e7\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/1af26d0901a2410a8bb3f0aba9cd35e7\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/XMLExport_ohne_VBA\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"XML-Export ohne VBA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"XML-Export ohne VBA - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/","og_locale":"de_DE","og_type":"article","og_title":"XML-Export ohne VBA","og_description":"F&uuml;r den einen oder anderen Anwendungsfall ben&ouml;tigen Sie die Daten aus den Tabellen Ihrer Datenbank im XML-Format - zum Beispiel, um diese von einer anderen Anwendung aus einzulesen. Access stellt verschiedene M&ouml;glichkeiten f&uuml;r den Export von Daten im XML-Format zur Verf&uuml;gung. Wir schauen uns an, wie dies &uuml;ber die Benutzeroberfl&auml;che gelingt und welche M&ouml;glichkeiten VBA f&uuml;r diesen Zweck bietet - diesmal ohne Nutzung externer Bibliotheken, also ausschlie&szlig;lich mit Bordmitteln.","og_url":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T15:41:54+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"24\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"XML-Export ohne VBA","datePublished":"2020-05-22T15:41:54+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/"},"wordCount":3640,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7","articleSection":["2016","4\/2016","Tabellen und Datenmodellierung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/","url":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/","name":"XML-Export ohne VBA - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7","datePublished":"2020-05-22T15:41:54+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/1af26d0901a2410a8bb3f0aba9cd35e7"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/XMLExport_ohne_VBA\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"XML-Export ohne VBA"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001045"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001045\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}