参数太少,预计1?错误访问

时间:2014-04-26 16:17:56

标签: mysql .net vb.net ms-access

运行此命令时出现上述错误:

   CurrentDb.Execute "UPDATE VolunteerDetails " & _
   " SET FirstName=" & Me.frst_Name_txt & _
   ", LastName='" & Me.lst_Name_txt & "'" & _
   ", PostalCode='" & Me.pst_Code_txt & "'" & _
   " WHERE VolsID=" & Me.vol_ID_txt

任何人都可以解释原因吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您的问题在FirstName值中。它似乎是一个字符串,因此您需要将您的值放在单引号

CurrentDb.Execute "UPDATE VolunteerDetails " & _
" SET FirstName='" & Me.frst_Name_txt & "'" & _
", LastName='" & Me.lst_Name_txt & "'" & _
", PostalCode='" & Me.pst_Code_txt & "'" & _
" WHERE VolsID=" & Me.vol_ID_txt

说,请阅读Sql InjectionParameterized queries。你的代码是非常弱的,如果有人输入像O'Malley这样的LastName(单引号会破坏你的字符串连接),它就会失败。

正如上面的评论所指出的,我认为这些变量不是TextBoxes而只是字符串变量。如果这些是TextBoxes,那么设置字段的值来自TextBox的Text属性。像

这样的东西
" SET FirstName='" & Me.frst_Name_txt.Text & "'"