访问VB错误3061:参数太少,预计1
问题描述:
我写一段简单的SQL查询的在我的测试数据库更新表,但我遇到的问题:访问VB错误3061:参数太少,预计1
Public Sub UpdateStatus(TypeName As String)
Dim DBase As Database
Dim SQLCommand As String
Dim qdfChange As QueryDef
SQLCommand = "Update Case SET Status = 1 WHERE TypeName = '" & TypeName & "';"
Debug.Print SQLCommand
Set DBase = OpenDatabase("C:\TestDatabase\CaseSet.accdb")
Set qdfChange = DBase.CreateQueryDef("", SQLCommand)
qdfChange.Execute
End Sub
在表中的字段名大小写匹配我的SQL查询中的。
(如果这是任何值,此功能属于一种形式)
答
Case is a reserved word and TypeName is a VBA Function.这使得他们选择不当的数据库对象名称。
如果您不能重命名它们,请在SQL语句中包含这些名称,以便数据库引擎将它们识别为对象名称。
SQLCommand = "Update [Case] SET Status = 1 WHERE [TypeName] = '" & TypeName & "';"
你能直接运行你的SQL吗?您的实际列/表名称是Access中的保留字吗?什么数据类型是'bar'和'foo'? – JNevill
foo是数字,酒吧是短文本 – Eddy
'bar'是否正确设置?你可以在'SQLCommand ='行上放一个断点并确认'bar'有一个值吗? – JNevill