Access 2013 无法将参数查询导出到 XML 和 XSD

Access 2013 was unable to export parameter query to XML and XSD

我目前正在尝试编写 VBA 来执行 XML 但由于它失败了,我决定尝试使用 Access 附带的内置 XML 生成器。我有一个参数化查询,输入参数后,我将导出 XML 和 XSD 文件。单击“确定”后,我会弹出一个窗口,提示 "Access was unable to export the data." 它在非参数化查询上运行良好,因此我认为这不是 DLL 问题。任何想法都会有所帮助。

我能够在 Access 2010 中重现您的问题。有趣的是,Access 可以成功地将参数查询单独导出到 XML 文件,但试图同时导出 XML 和 XSD 文件导致访问阻塞。

解决方法是使用 SELECT * INTO ... 将查询结果转储到临时 table,将 table 导出到 XML 和 XSD,然后删除临时 table:

Option Compare Database
Option Explicit

Sub so37834736()
    ' sample data
    Const queryName = "myParameterQuery"
    Const tempTableName = "zzzTempTable"
    Const xmlFileSpec = "C:\__tmp\zzzTest.xml"
    Const xsdFileSpec = "C:\__tmp\zzzTest.xsd"

    Dim cdb As DAO.Database
    Set cdb = CurrentDb
    Dim qdf As DAO.QueryDef
    Set qdf = cdb.CreateQueryDef("", _
            "SELECT * INTO [" & tempTableName & "] FROM [" & queryName & "]")
    qdf!prmStartDate = DateSerial(2001, 1, 1)  ' specify parameter value(s)
    qdf.Execute dbFailOnError
    Set qdf = Nothing
    Set cdb = Nothing
    Application.ExportXML acExportTable, tempTableName, xmlFileSpec, xsdFileSpec
    DoCmd.DeleteObject acTable, tempTableName
End Sub