Zusammenfassung
Erzeugen Sie XML-Dateien aus Recordsets und umgekehrt und lernen Sie weitere Features von XML kennen.
Techniken
XML, Recordsets, XMLDOM, XPath
Voraussetzungen
Access 2000 und höher, MSXML 3.0
Beispieldateien
Tom Jordan, Düsseldorf
Wie Sie XML in Ihrer Access-Datenbank noch konkreter einsetzen können, erfahren Sie in diesem dritten und letzten Beitrag aus unserer XML-Serie. Hier präsentiert Access im Unternehmen Ihnen eine allgemeine Lösung zur Konvertierung einer Access-Tabelle nach XML (und zurück). Wie in den letzten Beiträgen werden dabei ADO und XMLDOM eingesetzt.
Obwohl ein ADO-Recordset die Möglichkeit bietet, Daten nach XML zu exportieren, können Sie das Format der resultierenden XML-Daten nicht beeinflussen. Daher die Frage, wie man selbst die Funktion „nachprogrammieren“ könnte. Mit dem XMLDOM ist es durchaus möglich, ein XML-Dokument nach der Struktur eines Recordsets zu erstellen und dieses mit Daten zu füllen.
Daten zusammenstellen
Bei dieser Lösung sollten Sie systematisch vorgehen und sich zuerst überlegen, wie die Daten zum Exportieren ermittelt und aufbereitet werden sollen. Im ersten Teil dieser Serie haben Sie ein Code-Beispiel kennen gelernt, in dem die Tabelle Versandfirmen (aus der Nordwind-Beispieldatenbank) mit der ADO-Bibliothek geöffnet wird.
Diese kleine Testprozedur erweitern Sie nun so, dass sie mit zwei Eingabeparametern namens TableName und ElementName versehen wird. Die Prozedur öffnet ein Recordset-Objekt mit der Tabelle, die im Eingabeparameter TableName übergeben wird, und gibt den Inhalt der Tabelle zunächst im Direktfenster aus (s. Quellcode 1).
Interessant bei dieser neuen Prozedur ExportToXML() ist die Verwendung der Fields-Auflistung, die jedes Recordset-Objekt enthält.
über diese Auflistung können Sie auf jedes Feld (über das Field-Objekt) der Datensatzgruppe zugreifen, ohne vorher zu wissen, wie die Felder benannt sind. Auf diese Weise wird bei jeder Iteration der While-Schleife jedes einzelne Feld ermittelt und sein Name und Wert ausgegeben. Am Ende der Iteration wird mit der MoveNext-Methode zum nächsten Datensatz gewechselt. Zum Schluss wird das Recordset-Objekt mit der Close-Methode geschlossen.
Das Ergebnis im Textformat
Diese Version der Prozedur gibt das unten stehende Ergebnis aus. Da Sie die Felder bei der Ausgabe eingerückt haben, haben Sie schon einen Eindruck davon, wie die XML-Datei aussehen wird:
Versandfirmen
Versandfirma
Firmen-Nr = 1
Firma = Speedy Express
Telefon = (503) 555-9831
Versandfirma
Firmen-Nr = 2
Firma = United Package
Telefon = (503) 555-3199
Versandfirma
Firmen-Nr = 3
Firma = Federal Shipping
Telefon = (503) 555-9931
Quellcode 1: Inhalt einer Tabelle im Direktfenster ausgeben
Sub ExportToXML(ByVal TableName As String, ByVal ElementName As String)
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open TableName, CurrentProject.Connection
Debug.Print TableName
Do While Not rst.EOF
Debug.Print vbTab & ElementName
For Each fld In rst.Fields
Debug.Print vbTab & vbTab & _
fld.Name & " = " & fld.Value
Next ''fld
rst.MoveNext
Loop
rst.Close
End Sub
An der Spitze der Ausgabe steht der Tabellenname Versandfirmen, bei jeder Iteration der Elementname Versandfirma. Beide wurden ja als Eingabeparameter übergeben. Die unter jedem Versandfirma-Element stehenden Felder sind das Ergebnis des Durchlaufs der Fields-Auflistung.
Weiter geht“s mit XML
Die nächste Baustufe ist die Implementierung der XML-Komponente, die mit XMLDOM erledigt wird.
Die Export-Prozedur erstellt zunächst ein neues XML-Dokument, fügt diesem neue Knoten hinzu und füllt es anschließend mit den Tabellendaten aus dem Recordset.
Das Erstellen des Dokuments sowie seine obersten Elemente (Tabellenname) können Sie mit gerade mal zwei Zeilen Code erledigen:
Nur für Abonnenten
Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.
Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.
So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.
Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.
Bereits Abonnent? Hier einloggen
Kostenlos & unverbindlich
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →