0

我试图创建一个按钮来删除子表单中的某些记录。但是我在查询表达式'KEY_ID =“1'中得到“语法错误(缺少运算符)。

我知道问题是什么:属性是文本,因此值需要用单引号括起来。我只是不知道如何编写 VBA 来实现这一点。

Private Sub cmdDelete_Click()
If Not (Me.subKey.Form.Recordset.EOF And Me.subKey.Form.Recordset.BOF) Then
    If MsgBox("Confirm Deletion?", vbYesNo) = vbYes Then
        Dim strSql As String
        strSql = "DELETE FROM KEYS" & _
            " WHERE KEY_ID='" & Me.subKey.Form.Recordset.Fields("KEY_ID")
        Debug.Print strSql ' <- prints to Immediate window
        CurrentDb.Execute strSql, dbFailOnError

    End If
End If
4

1 回答 1

0
strSql = "DELETE FROM KEYS" & _
    " WHERE KEY_ID='" & Me.subKey.Form.Recordset.Fields("KEY_ID") & "'"

...不过,请注意,当这类事情变得更加密集时,将引号用作 ASCII 字符会更安全,或者至少更通用或可移植。

strSql = "DELETE FROM KEYS" & _
    " WHERE KEY_ID=" & _
    Chr(32) & Me.subKey.Form.Recordset.Fields("KEY_ID") & Chr(32)

我不确定这是不是,Chr(32)但我认为这是正确的。

于 2013-01-11T01:49:49.417 回答