我希望能够使用VBA或宏(或任何其他方法)将Access数据库中的查询或报表导出到多个XML文件中。查询看起来如下所示。我的要求是为每个位置导出单个XML文件。例如,236将拥有它自己的文件,1411拥有它自己的文件等,每个文件只包含该位置的那些数据行。
我可以在导出到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并找到其他方法来解析文件。我对任何想法持开放态度。
答案 0 :(得分:0)
将strRptFilter
字符串用作Application.ExportXML Method的 WhereCondition 选项。
Application.ExportXML ObjectType:=acExportTable, _
DataSource:="MyTable", _
DataTarget:="FolderLocation" & "\" & rst![Location] & ".xml", _
WhereCondition:=strRptFilter