2016-05-02 70 views
1

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

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,并找到其他解析文件的方式。我愿意接受任何想法。

回答

0

使用您的strRptFilter字符串作为WhereCondition选项Application.ExportXML Method

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

这样做了!感谢您的帮助! :) – Nate