语法错误更新记录

时间:2013-01-11 03:09:54

标签: database vba ms-access access-vba

我有一个表单和子表单。我试图通过使用按钮允许子窗体中的更新。但是我的代码给了我。

KEY_ID是文本,另外两个是数字类型。

"查询表达式中的语法错误" 5",ROOM = 5。抽屉= 55(这是我试图将其更改为的新值)WHERE KEY_ID = 5'。

这是我的表单图片:http://jumpshare.com/b/17A7Pr

这就是我的尝试:

Private Sub cmdAdd_Click()
If Me.keyID.Tag & "" = "" Then
    CurrentDb.Execute "INSERT INTO KEYS(KEY_ID, ROOM, DRAWER)" & _
        " VALUES('" & Me.keyID & "'," & Me.roomID & "," & Me.drawerID & ")"
          subKey.Form.Requery
Else
    CurrentDb.Execute "UPDATE KEYS " & _
    " SET KEY_ID=" & Chr(39) & keyID & Chr(39) & _
    ", ROOM=" & Me.roomID & _
    ", DRAWER=" & Me.drawerID & _
    " WHERE KEY_ID=" & Me.keyID.Tag
    Debug.Print KEY_ID
End If

解决方案:

CurrentDb.Execute "UPDATE KEYS " & _
" SET KEY_ID=" & Me.keyID & _
", ROOM=" & Me.roomID & _
", DRAWER=" & Me.drawerID & _
" WHERE KEY_ID=" & Chr(39) & keyID.Tag & Chr(39)

2 个答案:

答案 0 :(得分:1)

解决方案:

CurrentDb.Execute "UPDATE KEYS " & _
" SET KEY_ID=" & Me.keyID & _
", ROOM=" & Me.roomID & _
", DRAWER=" & Me.drawerID & _
" WHERE KEY_ID=" & Chr(39) & keyID.Tag & Chr(39)

答案 1 :(得分:0)

尝试没有Chr(39)的代码..这应该有效。

Private Sub cmdAdd_Click()
If Me.keyID.Tag & "" = "" Then
    CurrentDb.Execute "INSERT INTO KEYS(KEY_ID, ROOM, DRAWER)" & _
        " VALUES('" & Me.keyID & "'," & Me.roomID & "," & Me.drawerID & ")"
          subKey.Form.Requery
Else
    CurrentDb.Execute "UPDATE KEYS " & _
    " SET KEY_ID=" &  keyID  & _
    ", ROOM=" & Me.roomID & _
    ", DRAWER=" & Me.drawerID & _
    " WHERE KEY_ID=" & Me.keyID.Tag
    Debug.Print KEY_ID
End If