{"id":55000321,"date":"2016-12-01T00:00:00","date_gmt":"2020-01-24T15:59:37","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=321"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Daten_sichern_ueber_XML","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html","title":{"rendered":"Daten sichern &uuml;ber XML"},"content":{"rendered":"<p class='introduction'>F&uuml;r die Aufgabe, dass mehrere Tabellen einer Datenbank in eine andere verfrachtet werden sollen, weil Sie dort exakt dieselben Daten ben&ouml;tigen, gibt es unterschiedliche L&ouml;sungen. Je nach Situation kommt es auf die Inhalte an, auf die Beziehungen zwischen den Tabellen, oder auf die Eigenschaften und Attribute der Felder. Mit Access 2010 ist eine neue M&ouml;glichkeit hinzugekommen, die wir uns genauer anschauen.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1606_TabExport.accdb<\/b>.<\/p>\n<h2>Exportfunktionen<\/h2>\n<p>Bei Neuanlage einer Datenbank m&ouml;chten Sie das Entwickeln des Datenmodells schnell erledigt haben. Sie greifen daher h&auml;ufig auf existierende Datenbanken zu, die bereits die gew&uuml;nschten oder &auml;hnliche Tabellen enthalten, importieren diese entweder in die neue Datenbank, oder exportieren sie aus der bestehenden.<\/p>\n<p>In der Regel werden Sie sich dabei der f&uuml;r diesen Zweck vorgesehenen Funktionen der Oberfl&auml;che bedienen. Das Men&uuml;band spendiert uns daf&uuml;r sogar einen eigenen Reiter <b>Externe Daten<\/b> mit seinen Gruppen <b>Exportieren<\/b>, sowie <b>Importieren und Verkn&uuml;pfen<\/b>. <\/p>\n<p>Auch &uuml;ber VBA k&ouml;nnen Sie den Import und Export auf unterschiedliche Weise ansto&szlig;en.<\/p>\n<p>In aller K&uuml;rze hier einige M&ouml;glichkeiten, auf die an anderer Stelle bereits eingegangen wurde:<\/p>\n<pre>RunCommand acCmdExportAccess<\/pre>\n<p>Ruft lediglich den Dialog zum Exportieren einer Tabelle in eine externe Datenbank auf<\/p>\n<pre>RunCommand acCmdImportAttachAccess<\/pre>\n<p>Ruft nur den Dialog zum Importieren von Elementen aus einer externen Datenbank auf. Bei diesen beiden Anweisungen sind also zus&auml;tzlich manuelle Angaben erforderlich.<\/p>\n<pre>DoCmd.RunSavedImportExport \"<Name>\"<\/pre>\n<p>In diesem Fall l&auml;uft der Import oder Export automatisch ab, jedoch unter einer Bedingung: Sie haben den Vorgang bereits &uuml;ber die Oberfl&auml;chendialoge einmal durchgef&uuml;hrt und ihn namentlich abgespeichert.<\/p>\n<pre>DoCmd.TransferDatabase ...<\/pre>\n<p>Das ist die Hauptfunktion zum Exportieren von Tabellen. Die Funktion erwartet eine Vielzahl von Parametern, die sie steuern. Nachteil: Nur eine einzelne Tabelle kann &uuml;ber sie exportiert werden.<\/p>\n<pre>Application.SaveAsText acTable, _\r\n    \"<Name>\", \"<Dateiname>\"<\/pre>\n<p>Diese versteckte Funktion speichert die Tabelle komplett mit all ihren Eigenschaften in eine Datei. Das Pendant zum Wiederherstellen der Tabelle:<\/p>\n<pre>Application.LoadFromText\r\nacTable,\"<TabellenName>\",  \"<Dateiname>\"<\/pre>\n<p>Sollen mehrere Tabellen ohne jede manuelle Interaktion exportiert werden, wie etwa jene des Datenmodells aus Bild 1 der Beispieldatenbank, so kommt man folglich um eine ausprogrammierte Routine nicht herum. Doch seit <b>Access 2010<\/b> gibt es hierf&uuml;r eine neue Anweisung, die die Sache deutlich einfacher macht.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/rellayout.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/rellayout.png\" alt=\"Datenmodell der Beispieldatenbank\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Datenmodell der Beispieldatenbank<\/p>\n<h2>Die Funktion ExportXML<\/h2>\n<p>erwartet, &auml;hnlich, wie <b>TransferDatabase<\/b>, die &uuml;bergabe einer Menge von Parametern. Der erste gibt den Objekttyp des Elements an, das exportiert werden soll. <b>IntelliSense<\/b> erleichtert Ihnen dabei die Auswahl der Parameterkonstanten. Darunter finden Sie mit <b>acExportForm<\/b> oder <b>acExportReport<\/b> auch die Objekttypen Formular und Bericht. Wer nun denkt, dass sich dar&uuml;ber der komplette Aufbau von Formularen und Berichten transferieren lie&szlig;e, der irrt! Tats&auml;chlich bezieht Access hier nur die Daten dieser Objekte in den Export ein, also im Prinzip deren Datenherk&uuml;nfte. Das braucht man wohl h&ouml;chst selten!<\/p>\n<p>Die einzige f&uuml;r unseren Zweck sinnvolle Konstante ist deshalb <b>acExportTable<\/b>. Listing 1 zeigt, wie die Tabelle <b>tblKunden<\/b> &uuml;ber <b>ExportXML<\/b> in eine <b>XML-Datei <\/b>&uuml;berf&uuml;hrt wird. Zun&auml;chst wird der Ausgabepfad in der Variablen <b>sPath<\/b> zwischengespeichert. Im Beispiel ist das das Verzeichnis der aktuellen Datenbank. <b>ExportXML<\/b> wird als zweiten Parameter der Name der Tabelle (<b>tblKunden<\/b>) &uuml;bergeben und als dritter der Dateiname, welcher sich aus Pfad plus <b>kunden.xml<\/b> bildet.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>ExportTable()\r\n     <span style=\"color:blue;\">Dim <\/span>sPath<span style=\"color:blue;\"> As String<\/span>\r\n     \r\n     sPath = CurrentProject.Path & \"\\\"\r\n     ExportXML acExportTable, \"tblKunden\", sPath & \"kunden.xml\", _\r\n         , , , , _\r\n         acEmbedSchema Or acExportAllTableAndFieldProperties\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 1: Die einfachste Prozedur zum Datenexport per Funktion ExportXML<\/p>\n<p>Darauf folgen mehrere Kommas, die bedeuten, dass hier vier optionale Parameter nicht angegeben werden. Man braucht sie in der Regel nicht, denn sie beziehen sich alle auf optionale Zus&auml;tze der XML-Datei, wie das Schema oder die Pr&auml;sentation. Wichtig hingegen ist der n&auml;chste Parameter, der die Art des Exports &uuml;ber w&auml;hlbare <b>Flags<\/b> festlegt. <b>acEmbedSchema<\/b> sagt Access, dass das XML-Schema in der XML-Datei selbst abzulegen ist, statt separat. <b>acExportAllTableAndFieldProperties<\/b> gibt an, dass nicht nur Daten und Struktur ausgegeben werden sollen, sondern auch die Eigenschaften und Attribute sowohl der Tabelle, wie aller Felder. Das w&auml;ren dann Beschriftungen, G&uuml;ltigkeitsformeln, Standardwerte, also alles, was nicht in die <b>SQL-DDL<\/b>-Repr&auml;sentation passt, aber auch Spaltenbreiten und weitere Layoutangaben, wie Schriftart oder Farben. Derlei erlaubt <b>TransferDatabase<\/b> nicht! Die Anweisung wurde wahrscheinlich f&uuml;r die Automation der ab <b>Access 2007<\/b> neu eingef&uuml;hrten <b>Vorlagen<\/b> und <b>Anwendungs-Parts<\/b> eingef&uuml;hrt, denn die Gestalt der XML-Datei entspricht diesen <b>Template<\/b>-Dateien genau.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000321\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000321?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000321\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"123b777de9\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&uuml;r die Aufgabe, dass mehrere Tabellen einer Datenbank in eine andere verfrachtet werden sollen, weil Sie dort exakt dieselben Daten ben&ouml;tigen, gibt es unterschiedliche L&ouml;sungen. Je nach Situation kommt es auf die Inhalte an, auf die Beziehungen zwischen den Tabellen, oder auf die Eigenschaften und Attribute der Felder. Mit Access 2010 ist eine neue M&ouml;glichkeit hinzugekommen, die wir uns genauer anschauen.<\/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,66062016,44000002],"tags":[],"class_list":["post-55000321","post","type-post","status-publish","format-standard","hentry","category-662016","category-66062016","category-Grundlagen"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Daten sichern &uuml;ber XML - Access [basics]<\/title>\n<meta name=\"description\" content=\"F\u00fcr die Aufgabe, dass mehrere Tabellen einer Datenbank in eine andere verfrachtet werden sollen, weil Sie dort exakt dieselben Daten ben\u00f6tigen, gibt es unterschiedliche L\u00f6sungen. Je nach Situation kommt es auf die Inhalte an, auf die Beziehungen zwischen den Tabellen, oder auf die Eigenschaften und Attribute der Felder. Mit Access 2010 ist eine neue M\u00f6glichkeit hinzugekommen, die wir uns genauer anschauen.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Daten sichern &uuml;ber XML - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"F\u00fcr die Aufgabe, dass mehrere Tabellen einer Datenbank in eine andere verfrachtet werden sollen, weil Sie dort exakt dieselben Daten ben\u00f6tigen, gibt es unterschiedliche L\u00f6sungen. Je nach Situation kommt es auf die Inhalte an, auf die Beziehungen zwischen den Tabellen, oder auf die Eigenschaften und Attribute der Felder. Mit Access 2010 ist eine neue M\u00f6glichkeit hinzugekommen, die wir uns genauer anschauen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/rellayout.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"9\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/rellayout.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\",\"name\":\"Daten sichern &uuml;ber XML - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:37+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"F\\u00fcr die Aufgabe, dass mehrere Tabellen einer Datenbank in eine andere verfrachtet werden sollen, weil Sie dort exakt dieselben Daten ben\\u00f6tigen, gibt es unterschiedliche L\\u00f6sungen. Je nach Situation kommt es auf die Inhalte an, auf die Beziehungen zwischen den Tabellen, oder auf die Eigenschaften und Attribute der Felder. Mit Access 2010 ist eine neue M\\u00f6glichkeit hinzugekommen, die wir uns genauer anschauen.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Daten_sichern_ueber_XML.html\",\"name\":\"Daten sichern &uuml;ber XML\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000321"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000321\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}