如何创建将传递查询导出为 XML 文件的 VBA 函数(用于 Access 2010)?
Posted
技术标签:
【中文标题】如何创建将传递查询导出为 XML 文件的 VBA 函数(用于 Access 2010)?【英文标题】:How can I create a VBA function (for Access 2010) that exports pass-through queries as XML files? 【发布时间】:2014-03-18 16:11:28 【问题描述】:目前,我使用的是 Access 2010。我使用 TSQL 创建和存储了多个传递查询。
以前,我使用以下 VBA 定期导出本机(到 Access 2010)“选择”查询:
Sub ExportToXmlFile()
Application.ExportXML ObjectType:=acExportQuery, DataSource:="Query1", DataTarget:="C:\Desktop\Query1.xml"
Application.ExportXML ObjectType:=acExportQuery, DataSource:="Query2", DataTarget:="C:\Desktop\Query2.xml"
End Sub
但是,自从我将 Query1 和 Query2 重新设计为传递查询后,我收到以下运行时错误:“7798:您只能将选择、交叉表和联合查询保存为这种格式”。
因此,我想知道如何重写上述 VBA 以便能够将我的传递查询导出为 XML 文件?
注意事项:
在研究这个问题的过程中,我偶然发现了以下内容: Can't export a pass through query...Google groups
似乎一个可能的解决方案是将传递查询存储为临时表,然后将临时表导出为 XML 文件。不幸的是,我一直试图重写上面的 VBA 来这样做,但无济于事。
【问题讨论】:
【参考方案1】:您发现ExportXML
不会接受直通查询。但是,至少在 Access 2007 中,您可以通过创建一个使用传递作为其数据源的新查询来相当轻松地解决该限制。然后ExportXML
将毫无怨言地接受新的查询。
创建此查询并将其保存为qryFromPassthru:
SELECT *
FROM Query1;
然后使用 qryFromPassthru 和 ExportXML
:
Application.ExportXML ObjectType:=acExportQuery, _
DataSource:="qryFromPassthru", DataTarget:="C:\Desktop\Query1.xml"
【讨论】:
以上是关于如何创建将传递查询导出为 XML 文件的 VBA 函数(用于 Access 2010)?的主要内容,如果未能解决你的问题,请参考以下文章