什么是“参数太少。预期1.”在MS Access上意味着什么?

时间:2013-12-08 14:24:50

标签: vba ms-access access-vba ms-access-2010

我正在尝试更新表单中的记录。这是一个餐厅预订系统。给定表#,表单可以让用户输入预订人的客户ID,预订时间和日期。但是当我点击表单中的“更新”按钮时,会弹出一个文本框:

enter image description here

无论我输入什么,运行时错误“参数太少。预期1.”弹出。有时会弹出“保留错误”。有人能帮助我吗?这是我最终完成这个项目的最后一步。

这是我更新记录的代码:

Private Sub Command8_Click()
On Error GoTo errHandling

Dim strSQL As String

strSQL = "UPDATE tblReserve SET CustomerID = " & """" & Me.txtCustID & """" & _
", ResDate = " & """" & Me.txtResDate & """" & ", ResTime = " & """" & Me.txtTime &      """" & " WHERE TableNum =" & Me.TableNum

DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
CurrentDb.Execute strSQL, dbFailOnError

DoCmd.Close
Exit Sub
errHandling:
MsgBox Err.Description
End Sub

enter image description here

带有Debug.Print strSQL

的VBA编辑器的屏幕截图

2 个答案:

答案 0 :(得分:2)

正如我们chat所揭示的那样,问题的实质是[TableNum]是一个文本字段,因此其值必须用引号括起来:

"... WHERE TableNum = '" & Me.TableNum & "'"

答案 1 :(得分:0)

尝试这样的事情

strSQL = "UPDATE tblReserve SET CustomerID = " & Me.txtCustID & _
", ResDate = " & "'" & Me.txtResDate & "'" & ", ResTime = " & "'" & Me.txtTime & "'" &  " WHERE TableNum =" & Me.TableNum

我不确定为什么你在双引号内有两套双引号,我认为你要找的是单引号:)

但是,有更好的方法来格式化sql而不是这个。这看起来像是家庭作业,所以要学习!