2016-05-02 65 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