访问VBA - 识别文本

时间:2013-01-11 01:40:41

标签: sql string vba ms-access access-vba

我试图创建一个按钮来删除子窗体中的某些记录。但是我在查询表达式'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

1 个答案:

答案 0 :(得分: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),但我认为这是正确的。