MSAccess xml-Datei nach Vorlage(Schema) erzeugen
Hallo und guten Tag,
ich habe eine Frage zum xml-Export von Abfragen in Access. Die Funktion ist mir soweit vom Grundsatz her klar.
Ich würde aber gerne ein vordefiniertes xml- Schema verwenden, z.B. von einer Standardisierungsstelle und dort meine Daten einfügen. Hier komme ich aber irgendwie nicht weiter. Ich führe die Abfrage aus und exportiere das Ergebnis in xml. Dort kann ich auch angeben, das ein Schema mit erstellt werden soll. Aber ich habe ja ein Schema und dort sollen die Daten eingetragen werden.
Wer könnte mir da mal einen Tip geben.
Danke und Grüsse
Graudon
ich habe eine Frage zum xml-Export von Abfragen in Access. Die Funktion ist mir soweit vom Grundsatz her klar.
Ich würde aber gerne ein vordefiniertes xml- Schema verwenden, z.B. von einer Standardisierungsstelle und dort meine Daten einfügen. Hier komme ich aber irgendwie nicht weiter. Ich führe die Abfrage aus und exportiere das Ergebnis in xml. Dort kann ich auch angeben, das ein Schema mit erstellt werden soll. Aber ich habe ja ein Schema und dort sollen die Daten eingetragen werden.
Wer könnte mir da mal einen Tip geben.
Danke und Grüsse
Graudon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 22845808858
Url: https://administrator.de/contentid/22845808858
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
5 Kommentare
Neuester Kommentar
Servus Graudon,
dafür wirst du wohl oder übel wenn es aus Access heraus geschehen soll, VBA bemühen müssen: Damit kannst du XML Dokumente nach beliebigen Schemata umsetzen. Als kurze Demonstration wie so etwas aussehen kann habe ich dir hier eine einfache Tabelle in ein XML-Dokument übersetzt.
Als Quelle dient diese Tabelle:
Das Ergebnis ist dann eine XML-Datei die im Verzeichnis der Datenbank abgelegt wird und folgendermaßen aussieht:
Außerhalb von Access gibt es natürlich diverse andere Methoden die Daten aus Access in beliebige XML Schemata zu pressen, ob das gescriptet mit Powershell, anderen Skriptsprachen, oder etwa mir einem spezialisierten Datentransformations-Tool wie Altova MapForce geschieht, entscheidet natürlich auch dein Workflow.
Grüße Uwe
dafür wirst du wohl oder übel wenn es aus Access heraus geschehen soll, VBA bemühen müssen: Damit kannst du XML Dokumente nach beliebigen Schemata umsetzen. Als kurze Demonstration wie so etwas aussehen kann habe ich dir hier eine einfache Tabelle in ein XML-Dokument übersetzt.
Als Quelle dient diese Tabelle:
Sub ExportDataToXMLSchema()
Dim db As Database, rs As Recordset, xml As Object, pi As Object, root As Object, client As Object, el As Object, dbFolder As String, fso As Object, c As Long
' process current database
Set db = CurrentDb
' create XML Document
Set xml = CreateObject("MSXML2.DomDocument.6.0")
Set fso = CreateObject("Scripting.FileSystemObject")
Set pi = xml.createProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""")
xml.insertBefore pi, xml.childNodes.Item(0)
' create document element
Set root = xml.createElement("Adressen")
' and add it to the document
xml.appendChild root
' get data from the source table
Set rs = db.OpenRecordset("Kunden")
' move to the first recordset
rs.MoveFirst
' process each record from data source
While Not rs.EOF
' create element for row
Set client = xml.createElement("Kunde")
' append the row node to the document element
root.appendChild client
' for each column in the record
For c = 0 To rs.Fields.Count - 1
' create a new element
Set el = xml.createElement(rs.Fields(c).Name)
' and assign the data from the column to the element
el.Text = rs.Fields(c).Value
' append the element as childnode to he row node
client.appendChild el
Next
' process next row
rs.MoveNext
Wend
' get the folder of the current database
dbFolder = fso.GetParentFolderName(db.Name)
' save the xml as a file
xml.Save dbFolder & "\" & "test-export.xml"
End Sub
Das Ergebnis ist dann eine XML-Datei die im Verzeichnis der Datenbank abgelegt wird und folgendermaßen aussieht:
<?xml version="1.0" encoding="utf-8"?>
<Adressen>
<Kunde>
<ID>1</ID>
<Vorname>Max</Vorname>
<Nachname>Muster</Nachname>
<Straße>Musterstr. 55</Straße>
<PLZ>66666</PLZ>
<Ort>Musterhausen</Ort>
</Kunde>
<Kunde>
<ID>2</ID>
<Vorname>Erika</Vorname>
<Nachname>Musterfrau</Nachname>
<Straße>Musterweg 11</Straße>
<PLZ>99999</PLZ>
<Ort>Musterdorf</Ort>
</Kunde>
</Adressen>
Außerhalb von Access gibt es natürlich diverse andere Methoden die Daten aus Access in beliebige XML Schemata zu pressen, ob das gescriptet mit Powershell, anderen Skriptsprachen, oder etwa mir einem spezialisierten Datentransformations-Tool wie Altova MapForce geschieht, entscheidet natürlich auch dein Workflow.
Grüße Uwe
Zitat von @Graudon:
Hallo Uwe, interessant wäre das z.B. bei der Rechnungserstellung via ZUGFerD.
Hier hat man das Schema und muss es entsprechend füllen.
Dann musst du dich mit dem Schema auseinandersetzen und die Daten entsprechend in die passenden Elemente wie oben beschrieben bringen. . Von selbst passiert das natürlich nicht mit einem Einzeiler, da musst du erst selbst Arbeit investieren, denn eure Datenbank kennt ja nur ihr .Hallo Uwe, interessant wäre das z.B. bei der Rechnungserstellung via ZUGFerD.
Hier hat man das Schema und muss es entsprechend füllen.
p.s. Einfacher geht das in Access mit einer passenden ZUGFeRD Bibliothek
Access - Rechnungen mit ZUGFeRD 1.0, Teil 1: .NET