从Access数据库查询创建多个XML文件

时间:2016-05-02 19:28:22

标签: xml vba ms-access xml-parsing access-vba

我希望能够使用VBA或宏(或任何其他方法)将Access数据库中的查询或报表导出到多个XML文件中。查询看起来如下所示。我的要求是为每个位置导出单个XML文件。例如,236将拥有它自己的文件,1411拥有它自己的文件等,每个文件只包含该位置的那些数据行。

enter image description here

我可以在导出到Excel时执行此操作,但是当我使用ExportXML切换到XML时,它会正确导出文件并按位置按名称命名每个文件(236.xml,1411。 xml等)但每个文件中都包含所有数据(不会过滤到该位置)。我的VBA:

Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT [Location] FROM [MyTable] ORDER BY [Location];", dbOpenSnapshot)

Do While Not rst.EOF
strRptFilter = "[Location] = " & rst![Location]
Debug.Print "strRptFilter"
ExportXML acExportTable, "MyTable", "FolderLocation" & "\" & rst![Location] & ".xml"
DoEvents
rst.MoveNext
Loop

rst.Close
Set rst = Nothing

这可能吗?我错了吗?是否有更好的方法或解决方案来实现我的需求?我想过可能会尝试创建一个循环查询,它会重新运行查询,更改过滤条件,按位置导出或者可能将整个文件导出到XML并找到其他方法来解析文件。我对任何想法持开放态度。

1 个答案:

答案 0 :(得分:0)

strRptFilter字符串用作Application.ExportXML Method WhereCondition 选项。

Application.ExportXML ObjectType:=acExportTable, _
    DataSource:="MyTable", _
    DataTarget:="FolderLocation" & "\" & rst![Location] & ".xml", _
    WhereCondition:=strRptFilter