Ms access Update table语句不适用于按钮单击

Ms access Update table语句不适用于按钮单击,ms-access,vba,Ms Access,Vba,我用这段代码来更新一个表,但它给出的错误是参数太少。预期2 Dim currDatabase As DAO.Database Set currDatabase = CurrentDb() Dim updatLibItemSQL As String updatLibItemSQL = "UPDATE [tblLibraryItem]" updatLibItemSQL = updatLibItemSQL & " SET [Status] = [checkOuString] " updatLi

我用这段代码来更新一个表,但它给出的错误是参数太少。预期2

Dim currDatabase As DAO.Database
Set currDatabase = CurrentDb()
Dim updatLibItemSQL As String
updatLibItemSQL = "UPDATE [tblLibraryItem]"
updatLibItemSQL = updatLibItemSQL & " SET [Status] = [checkOuString] "
updatLibItemSQL = updatLibItemSQL & " WHERE [ItemID] = [selectItemID] "
currDatabase.Execute updatLibItemSQL, dbFailOnError
原因是什么?请帮忙

这里tblLibraryItem是具有给定列的表名:ItemID、MediaType、ItemName、DateAcquire、Status、CheckedOut、DueDate


和checkOuString、selectItemID是两个字符串。

如果checkOuString和selectItemID是字符串变量,则以下操作可能有效

Dim currDatabase As DAO.Database
Set currDatabase = CurrentDb()
Dim updatLibItemSQL As String
updatLibItemSQL = "UPDATE [tblLibraryItem]"
updatLibItemSQL = updatLibItemSQL & " SET [Status] = '" & checkOuString & "'"
updatLibItemSQL = updatLibItemSQL & " WHERE [ItemID] = '" & selectItemID & "'"
currDatabase.Execute updatLibItemSQL, dbFailOnError

当您通过代码执行更新时,如果要将变量传递给SQL字符串,通常最好独立于SQL字符串本身传递它们:

Dim currDatabase As DAO.Database
Set currDatabase = CurrentDb()
Dim updatLibItemSQL, CheckOuString, selectItemID As String
CheckOuString = "whatever value"
selectItemID = "whatever value"
updatLibItemSQL = "UPDATE [tblLibraryItem]"
updatLibItemSQL = updatLibItemSQL & " SET [Status] = '" & checkOuString &  "'"
updatLibItemSQL = updatLibItemSQL & " WHERE [ItemID] = '" & selectItemID & "'"
currDatabase.Execute updatLibItemSQL, dbFailOnError
可能重复的