You want to export Access data to a single XML file, but the tables you wish to export are not related to each other. How do you select tables and create a single XML output file?
You must write VBA code to export multiple unrelated tables to a single XML file. The Access object model provides the ExportXML method, which has an AdditionalData parameter that takes an object of type AdditionalData.
The 18-06.MDB sample database contains three unrelated tables: Car, Customer, and Dealer. There is a single module, basExport, which contains the function ExportUnrelated. The code creates an AdditionalData object, and adds the Customer and Dealer tables to it. The ExportXML method uses the Car table as the DataSource, and uses the AdditionalData object to add the Customer and Dealer data to the output:
Dim adTables As AdditionalData Set adTables = Application.CreateAdditionalData adTables.Add "Customer" adTables.Add "Dealer" Application.ExportXML _ ObjectType:=acExportTable, _ DataSource:="Car", _ DataTarget:="c:\test\Unrelated.xml", _ AdditionalData:=adTables
Figure 18-17 shows the XML file in a browser, with only one element from each table expanded. All of the data from all of the tables has been exported.
A number of enhancements were added to the Access object model to facilitate importing and exporting XML data programmatically. The full syntax and all of the optional arguments for the ExportXML method are shown here:
ExportXML (ObjectType As AcExportXMLObjectType, Datasource As String, [DataTarget As String], [SchemaTarget As String], [PresentationTarget as String], [ImageTarget As String], [Encoding As AcExportXMLEncoding], [OtherFlags As Long], [WhereCondition As String], [AdditionalData as AdditionalData])
The OtherFlags optional argument, which was not used in the example, allows you to specify the following self-descriptive options, which are exposed as AcExportXMLOtherFlags enumerations: