我正在尝试使用VBA代码访问查询。我想我已经这样做了100次。我的代码(在命令按钮上)像这样开始:
Dim rstDocCount As Recordset
Set rstDocCount = CurrentDb.QueryDefs("DocCount").OpenRecordset
rst.MoveFirst
我收到此错误消息:
运行时错误'3061':参数太少。预计1。
Set rstDocCount
行突出显示为黄色。
我做错了什么?唯一的参数应该是查询的名称,我清楚地知道了。
答案 0 :(得分:6)
你需要:
Dim rstDocCount As Recordset
Dim qdf As QueryDef
Set qdf = CurrentDb.QueryDefs("DocCount")
qdf.Parameters("Forms!Boxing!BoxID") = Forms!Boxing!BoxID
Set rstDocCount = qdf.OpenRecordset
rstDocCount.MoveFirst
答案 1 :(得分:1)
" 唯一的参数应该是查询的名称,我清楚地知道了。"
OpenRecordset
方法接受3个参数:Type
; Options
;和LockEdit
。但是,所有这3个参数都是可选的,因此" 参数太少"错误不是OpenRecordset
参数。
相反,正如Remou指出的那样,您的QueryDef
包含了数据库引擎无法在查询的源表中找到的内容(通常是字段表达式)。在这种情况下,它会将缺少的某事视为参数,并需要该参数的值。