vba - 在插入之前检查列的值,如果存在移动到 Access 表单中的下一个字段?
问题描述
我在输入掩码中使用了“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
解决方案
您的代码看起来合法。当您尝试输入重复代码时,在即时窗口(查看 - 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
推荐阅读
- javascript - 获取:语法错误:缺少:在条件表达式中
- c# - 尝试删除 Azure Functions 中的 blob,但缺少 DeleteIfExists 方法
- c - 带/不带选项的 getopt 用法
- python - 从两个离散函数中获得最大值的最短 Python 代码是什么?
- visual-studio - 无法更新工作项 - 原因:TF237124:工作项尚未准备好保存
- json - JSON API 资源是否可以具有作为关系简写的属性?
- django - 无法找到 403 Forbidden 错误的原因:Nginx Daphne Django
- bluetooth - 有没有办法在不查看规格表的情况下找到蓝牙版本?
- javascript - Firebase auth() 子函数无法识别
- c++ - 在代码块中使用图形但没有输出