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