我在输入掩码中使用了“ E” 0000000000a; 0;#,并包含此代码来检查employeeCode在更新之前是否已存在。 但是,当我尝试输入重复的员工代码时。它允许。 有想法吗?
Private Sub Empl_Code_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("[EmplCode]", _
"FORM EMPLOYEE", _
"[EmplCode] = """ & Me.Empl_Code.Text & """")) = False Then
Cancel = True
MsgBox "Record already exists", vbOKOnly, "Warning"
Me![Empl Code].Undo
End If
End Sub
答案 0 :(得分:0)
您的代码看起来合法。 当您尝试输入重复的代码时,请在“即时”窗口(VBA编辑器中的“查看-即时”窗口)中测试您的 IsNull(DLookup ... 表达式)。 同样,您也可以使用DCount缩短表达式:
Private Sub Empl_Code_BeforeUpdate(Cancel As Integer)
If DCount("*", _
"FORM EMPLOYEE", _
"[EmplCode] = """ & Me.Empl_Code.Text & """") > 0 Then
Cancel = True
MsgBox "Record already exists", vbOKOnly, "Warning"
Me![Empl Code].Undo
else
' Just for test
MsgBox "Value: " & Me.Empl_Code.Text
End If
End Sub