2013-09-24 6 views
5

Potrzebuję utworzyć plik XML z Access. Musi mieć relacyjny format typu węzła.Eksportuj zagnieżdżony plik XML z dostępu. potrzebujesz pliku XML z węzłami

Na przykład:

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

Dane dla pozycji w tabeli. Kolory są w innym. Mam identyfikatory referencji, więc mogę do nich dołączyć.

Jak/można to zrobić. Rozglądałem się i widzę, jak wyeksportować tabelę, ale nie zagnieżdżony typ pliku.

Odpowiedz

1

Poniżej znajduje się przykład tego, czego używam do zapytania o dane, a następnie eksportuję wyniki do płaskiego pliku. Zaadaptowałem to nieco do tego, czego możesz potrzebować.

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

Tworzenie SELECT kwerendę, która używa identyfikatora odniesienia dołączyć tabelę elementów z tabeli kolorów.

Po uzyskaniu zapytania, które prawidłowo zbiera informacje, wyeksportuj dane do pliku XML z poziomu interfejsu użytkownika programu Access.

Export query to XML

Jeśli to daje XML chcesz, można zautomatyzować operację eksportu z VBA przy użyciu Application.ExportXML Method. Zauważ, że metoda oferuje mnóstwo opcji do modyfikowania XML. Ale eksport może być tak prosty, jak ten ...

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

[code] testowy Element Niebieski testowy Element Zielona testowy Element Niebieski [/ code] – macecase

1

Używam załączonego do stworzenia 3 milionów zagnieżdżonych xml w ciągu około pięciu minut.

Istnieją dwa kluczowe elementy,

1) prosty kawałek 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) Łączenie tabel w Relationship Manager za pomocą połączeń ze szkoły podstawowej do kluczy obcych.

Jeśli nie ma powiązań, kod wygeneruje sekwencyjny plik xml, jeśli istnieją relacje między kluczami podstawowymi , pojawi się błąd 31532, a eksport danych się nie powiedzie.

+0

Proszę nie pisać tę samą odpowiedź verbatim do wielu pytań. Jeśli pytania są rzeczywiście takie same, oznacz je jako duplikaty. –