【发布时间】:2015-05-22 02:16:27
【问题描述】:
databasename = "qryDataExport"
Dim grpfield As String
grpfield = "Group"
Dim keys As DAO.Recordset
groupcmd = "SELECT [" & databasename & "].[" & grpfield & "] FROM [" & databasename & "] GROUP BY [" & databasename & "].[" & grpfield & "]"
Set keys = CurrentDb.OpenRecordset(groupcmd, dbOpenSnapshot)
以上产生“错误 3061:参数太少。预期为 13。”运行时。到目前为止,我的阅读强烈暗示这可能是不正确的字段标题的拼写问题或由定义 groupcmd 的行中的不正确引用引起的问题。
我尝试了以下数据库名称格式:
CurrentDb.Queries.qryDataExport
CurrentDb!Queries!qryDataExport
还有上面的"qryDataExport"。后两个不提供错误消息,而第一个不编译。我已经确认在主表和 qryDataExport 中都有一个标题为 Group 的列。
正在使用的模块来自this Google Code page。
(编辑:截至此时的完整编辑模块:http://pastebin.com/TJip86ED)
据我所见,我认为这是数据库名称定义中一个非常明显的格式错误,但我没有足够的 VBA 经验来发现它,而且我的想法已经不多了。任何建议将不胜感激。
EDIT2:generateKML() 的内容现在位于ExportToKMLButton_Click() 中,其中ExportToKMLButton 是DW_Form 表单上的一个按钮。当DW_Form打开时,查询qryDataExport是可用的,但是当窗体关闭时,查询会提示输入错误信息中提到的13个参数。
【问题讨论】:
-
这是从您的代码中直接复制和粘贴的吗?你还有
Option Explicit在那个模块的顶部吗?此外,您的qryDataExport查询是否有可能期待您没有提供给它的参数? -
您是否尝试过在 groupcmd 上执行 debug.print,然后从 Access 获取输出并执行它以查看是否有效?
-
另外,您是否尝试过自行运行“qryDataExport”以确保该查询实际运行?
-
新增:该模块正在使用选项比较数据库,但不是选项显式。我想查询可能需要更多参数;我不是写它的人,老实说不知道如何检查参数要求。
-
OpiesDad: qryDataExport 在表单中运行良好(它有 16 个输入,所以我认为这不太可能)。