我有以下'set recordset'行,我无法工作.根据我在该主题上可以找到的所有可用帮助,参数似乎是正确的.
错误显示:
"运行时错误'3061'.参数太少.预计1."
这是代码行:
Set rs = dbs.OpenRecordset("SELECT Centre_X, Centre_Y FROM [qry_all_details]
WHERE ID = " & siteID & ";", dbOpenSnapshot)
Where rs is the recordset (Dim rs As Recordset) and dbs = CurrentDb()
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我试图删除WHERE原因没有任何效果,并在双引号之间使用单引号,但没有快乐.
非常感谢.
小智 49
"运行时错误'3061'.参数太少.预计1."
我相信当sql查询中的字段名称与表字段名称不匹配时会发生这种情况,即查询中的字段名称错误或者表格可能完全缺少该字段.
小智 12
你有:
WHERE ID = " & siteID & ";", dbOpenSnapshot)
Run Code Online (Sandbox Code Playgroud)
你需要:
WHERE ID = "'" & siteID & "';", dbOpenSnapshot)
Run Code Online (Sandbox Code Playgroud)
注意额外的引用(')...每次都会杀了我
编辑:添加缺少双引号
(对于那些阅读所有答案的人)。我的情况很简单,因为我使用 Forms!Table!Control 格式创建了一个 SQL 表达式。该格式在查询中是可以的,但 DAO 无法识别它。我很惊讶没有人对此发表评论。
这不起作用:
Dim rs As DAO.Recordset, strSQL As String
strSQL = "SELECT * FROM Table1 WHERE Name = Forms!Table!Control;"
Set rs = CurrentDb.OpenRecordset(strSQL)
Run Code Online (Sandbox Code Playgroud)
还行吧:
Dim rs As DAO.Recordset, strSQL, val As String
val = Forms!Table!Control
strSQL = "SELECT * FROM Table1 WHERE Name = '" & val & "';"
Set rs = CurrentDb.OpenRecordset(strSQL)
Run Code Online (Sandbox Code Playgroud)