Ho più tabelle di Microsoft Access che desidero esportare in un singolo file XML. Come faccio a manipolare l'ordine e la gerarchia delle tabelle nella struttura XML che voglio? In sostanza, voglio essere in grado di invertire il processo di importazione XML, che suddivide automaticamente i dati in più tabelle. Posso usare VBA, SQL e qualsiasi funzione di esportazione integrata a mia disposizione.esportazione di tabelle di accesso multiple su XML singolo
6
A
risposta
3
ecco la soluzione via VBA:
http://msdn.microsoft.com/en-us/library/ff193212.aspx
creare una da e mettere un pulsante su di esso. tasto destro del mouse sul pulsante e scegliere "costruire evento" e passato il seguente codice:
Dim objOtherTbls As AdditionalData
Set objOtherTbls = Application.CreateAdditionalData
'Identify the tables or querys to export
objOtherTbls.Add "internet"
objOtherTbls.Add "mokaleme"
'Here is where the export takes place
Application.ExportXML ObjectType:=acExportTable, _
DataSource:="internet", _
DataTarget:="C:\myxml.xml", _
AdditionalData:=objOtherTbls
MsgBox "Export operation completed successfully."
è necessario digitare il nome delle tabelle qui e tra i corsi:
objOtherTbls.Add "internet"
objOtherTbls.Add "mokaleme"
DataSource:="internet"
5
uso il attaccato a produrre un xml nidificato di 3 milioni di righe in circa cinque minuti.
Ci sono due elementi chiave,
1) un semplice pezzo di 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) Collegamento le tabelle in relationship manager utilizzando join dalle elementari alle chiavi esterne.
Se non ci sono relazioni il codice produrrà un file xml sequenziale, se ci sono relazioni tra chiavi primarie si otterrà un errore 31532 e l'esportazione dei dati avrà esito negativo.