MS Access:为什么无法访问我的代码?

MS Access: Why is my code not being reached?

我正在尝试对我的代码进行一些错误处理,并且我希望在用户尝试输入已经存在的记录时显示我的自定义错误消息。 Access 给出了自己的标准错误消息,指示重复记录,但我希望显示我的记录。问题是我的自定义错误消息未到达的代码部分,因此给我默认消息。

文本框的名称是“DepartmentCode”,table 的名称是“tDepartment”,列名称是“DepartmentCode”

我的代码是这样的...

Private Sub bAddDepartment_Click()
On Error GoTo bAddDepartment_Click_Err

   Dim OKToSave As Boolean
    OKToSave = True

    If Not SomethingIn(Me.DepartmentCode) Then          ' Null
        Beep
        MsgBox "A department code is required", vbOKOnly, "Missing Information"
        OKToSave = False
   
    Else
        Dim myDepartmentCode As String
        myDepartmentCode = "DepartmentCode = " + Chr(34) + Me.DepartmentCode + Chr(34)
        If DLookup("DepartmentCode", "tDepartment", myDepartmentCode) <> Null Then
            MsgBox "Department already on file", vbOKOnly, "Department already on file."
            OKToSave = False
        End If
    End If
    If OKToSave Then
        ' If we get this far, all data is valid and it's time to save
        Me.Dirty = False
        DoCmd.GoToRecord , "", acNewRec
        
       
    End If
bAddDepartment_Click_Exit:
    Exit Sub

bAddDepartment_Click_Err:
   
    Resume bAddDepartment_Click_Exit

End Sub

未达到的部分为If DLookup("DepartmentCode", "tDepartment", myDepartmentCode) <> Null Then

为什么会这样?

Debugging VBA Code <-- 查看实际执行了哪些行。

If DLookup("DepartmentCode", "tDepartment", myDepartmentCode) <> Null Then

你无法与 Null 相比。立即尝试此操作 Window:

? ("foo" <> Null)
Null

使用IsNull()

If Not IsNull(DLookup("DepartmentCode", "tDepartment", myDepartmentCode)) Then

或者如果空字符串也是可能的,使用Nz()

If Nz(DLookup("DepartmentCode", "tDepartment", myDepartmentCode), "") <> "" Then