微软 Access/Updating 记录

Microsoft Access/Updating Record

谁能帮我用下面的代码来编辑记录?我正在尝试编辑,但存在语法错误,我无法修复。 请参阅下面显示的错误。 运行 时间错误“3075” 查询表达式中的语法错误(缺少运算符)'TypeID='。

谢谢

Private Sub oshaadd_Click()
'On Error Resume Next

   If (IsNull(Me.oshaID) Or (Me.oshaID = "") And IsNull(Me.oshatype) Or              (Me.oshatype = "")) Then
     MsgBox "please fill required fields!", vbInformation, "Information"
      Exit Sub
   End If

If Me.oshaID.Tag & "" = "" Then
    CurrentDb.Execute "INSERT INTO osha(TypeID, OSHA)" & _
    "VALUES ('" & Me.oshaID & "', '" & Me.oshatype & "')"
        If MsgBox("Added", vbOKOnly) Then
            Me.osha_subform.Form.Requery
        End If
    Else

    CurrentDb.Execute "UPDATE osha " & _
    "SET TypeID =" & Me.oshaID & _
    ", OSHA = '" & Me.oshatype & "'" & _
   "WHERE TypeID =" & Me.oshatype.Tag
       MsgBox "Updated", vbInformation, "Information"
       Me.oshaadd.Caption = "Add"
       Me.oshaedit.Enabled = True
End If
Me.osha_subform.Form.Requery
End Sub



Private Sub oshaedit_Click()
On Error Resume Next
If Not (Me.osha_subform.Form.Recordset.EOF And     Me.osha_subform.Form.Recordset.BOF) Then
    With Me.osha_subform.Form.Recordset
        Me.oshaID = .Fields("TypeID")
        Me.oshatype = .Fields("OSHA")

        Me.oshaID.Tag = .Fields("TypeID")
        Me.oshaadd.Caption = "Update"
        Me.oshaedit.Enabled = False
     End With
End If
End Sub
CurrentDb.Execute "UPDATE osha " & _
"SET TypeID =" & Me.oshaID & _
", OSHA = '" & Me.oshatype & "'" & _
"WHERE TypeID =" & Me.oshatype.Tag
 MsgBox "Updated", vbInformation, "Information"
 Me.oshaadd.Caption = "Add"
 Me.oshaedit.Enabled = True

在您的代码块中,您有 "SET TypeID =" 和 "WHERE TypeID =",请尝试在等号后添加 space,使其显示为 "TypeID = "。如果这不能解决错误,请尝试在您分配给 TypeID 的值周围添加单引号 (TypeID = '" & Me.oshaID & _"' ,)

您忘记在 UPDATE SQL 语句中将数据库单引号放在 Me.oshaIDMe.oshatype.Tag 周围:

CurrentDb.Execute "UPDATE osha " & _
    "SET TypeID ='" & Me.oshaID & "'" & _
    ", OSHA = '" & Me.oshatype & "'" & _
    " WHERE TypeID ='" & Me.oshatype.Tag &"';"