2013-09-24 8 views
5

Ich muss eine XML-Datei von Access erstellen. Es muss ein relationales Knotentypformat haben.exportieren verschachtelte XML-Datei vom Zugriff. brauche XML-Datei mit Knoten

Zum Beispiel:

<Item> 
    <description></description> 
    <colors> 
     <blue> 
     <green> 
    </colors> 
</item> 

Die Daten für die Elemente ist in einer Tabelle. Die Farben sind in einem anderen. Ich habe Referenz-IDs, damit ich mich ihnen anschließen kann.

Wie/kann dies getan werden. Ich habe überall nachgesehen und gesehen, wie man eine Tabelle exportiert, aber nicht den verschachtelten Dateityp.

Antwort

1

Im Folgenden finden Sie ein Beispiel für das, was ich verwende, um Daten abzufragen und dann die Ergebnisse in eine flache Datei zu exportieren. Ich habe es etwas angepasst, was Sie vielleicht brauchen.

On Error GoTo Err_My_Click 
Dim rs As DAO.Recordset 
Set rs = CurrentDb.OpenRecordset("SELECT * FROM MyTable", dbOpenDynaset) 

If (rs.RecordCount <> 0) Then 
    rs.MoveFirst 

    Open "C:\Export\XML__MyFile.xml" For Output As #1 

    Do While rs.EOF = False 
    TempExportCount = TempExportCount + 1 

    Print #1, "<Item>" 
    Print #1, " <description>" & rs.Fields("[Description]").value & "</description>" 
    Print #1, "</Item>" 

    rs.MoveNext 
    Loop 
End If 

Exit_My_Click: 
    On Error Resume Next 
    rs.Close 
    Set rs = Nothing 
    Close 1# 
    Exit Sub 
Err_My_Click: 
    If (Err.Number = 76) Then 
    MsgBox ("The program could not save the txt file." & vbNewLine & vbNewLine & _ 
      "Make sure you have the following folder created: C:\Export\") 
    Else 
    MsgBox (Err.Description) 
    End If 
    Resume Exit_My_Click 
1

erstellen SELECT Abfrage, die die Referenz-ID verwendet Ihre Artikel Tabelle mit den Farben Tisch zu verbinden.

Sobald Sie eine Abfrage haben, die die Informationen korrekt erfasst, exportieren Sie ihre Daten aus der Access-Benutzeroberfläche in XML.

Export query to XML

Wenn das gibt Ihnen die XML Sie möchten, können Sie den Exportvorgang von VBA mit der Application.ExportXML Method automatisieren. Beachten Sie, dass diese Methode eine Vielzahl von Optionen bietet, um das XML zu optimieren. Aber der Export könnte so einfach sein wie dieser ...

Application.ExportXML acExportQuery, "YourQuery", _ 
    "C:\SomeFolder\YourQuery.xml" 
+0

[code] Test Item Blau Test Item Grün Test Item Blau [/ code] – macecase

1

Ich benutze das beigefügte, um eine 3 Millionen Zeile verschachtelte xml in etwa fünf Minuten zu produzieren.

Es gibt zwei wichtige Elemente,

1) ein einfaches Stück VB,

Public Function Export_ListingData() 

    Dim objOtherTbls As AdditionalData 

    On Error GoTo ErrorHandle 
    Set objOtherTbls = Application.CreateAdditionalData 
    objOtherTbls.Add "ro_address" 
    objOtherTbls.Add "ro_buildingDetails" 
    objOtherTbls.Add "ro_businessDetails" 
    objOtherTbls.Add "ro_businessExtras" 
    objOtherTbls.Add "ro_businessExtrasAccounts" 
    objOtherTbls.Add "ro_businessExtrasAccom" 
    objOtherTbls.Add "ro_businessExtrasAccom2" 

    Application.ExportXML ObjectType:=acExportTable, _ 
       DataSource:="ro_business", _ 
       DataTarget:="C:\Users\Steve\Documents\Conversions\ListData.xml", _ 
       AdditionalData:=objOtherTbls 
Exit_Here: 
     MsgBox "Export_ListingData completed" 
     Exit Function 
ErrorHandle: 
     MsgBox Err.Number & ": " & Err.Description 
     Resume Exit_Here 
End Function 

2) Die Verknüpfung der Tabellen in Relationship Manager von primären Verwendung auf Fremdschlüssel verbindet.

Wenn sie keine Beziehungen sind, wird der Code eine sequentielle XML-Datei erzeugen, wenn es Beziehungen zwischen Primärschlüsseln gibt, erhalten Sie einen 31532 Fehler und der Datenexport wird fehlschlagen.

+0

Bitte nicht die gleiche Antwort schreiben wörtlich auf mehrere Fragen. Wenn die Fragen identisch sind, markieren Sie sie als Duplikate. –

Verwandte Themen