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

时间:2016-06-15 11:54:14

标签: xml ms-access access-vba ms-access-2013

我目前正在尝试编写VBA来执行XML,但由于它失败了,我决定尝试使用Access附带的内置XML生成器。我有一个参数化查询,在我输入参数后,我将导出XML和XSD文件。单击“确定”后,我弹出一个“Access无法导出数据”的弹出窗口。它在非参数化查询上工作正常,所以我不认为它是一个DLL问题。任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:2)

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

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

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