访问VB错误3061:参数太少,预期1

时间:2016-05-23 18:00:38

标签: sql ms-access access-vba

我正在编写一个简单的SQL查询来更新测试数据库中的表,但我遇到了问题:

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

表格Case中的字段名称与我的SQL查询中的字段名称匹配。

(如果这是任何值,则此函数属于表单)

1 个答案:

答案 0 :(得分:1)

Case is a reserved word and TypeName is a VBA Function.这使得它们成为数据库对象名称的不良选择。

如果无法重命名它们,请在SQL语句中包含这些名称,以便db引擎将它们识别为对象名称。

SQLCommand = "Update [Case] SET Status = 1 WHERE [TypeName] = '" & TypeName & "';"