首页 > 解决方案 > MS Access 表单 VBA

问题描述

我有一个单一表单,当我的表单中的 2 个字段与表中的内容匹配而其他字段不匹配时,我试图在其中获取一个消息框来提示用户。

这是我在点击事件按钮中的代码。

If Not IsNull(Me.L_dt) Then 
    If Me.Ref = DLookup("[Ref]", "tbl", "[Ref]='" & Forms!MyForm!Ref & "'") And _
        Me.Class = Nz(DLookup("[ClassTy]", "tbl", "[ClassTy]<>'" & Forms!MyForm!ClassTy & "'"), 0) And _
        Me.L_dt = DLookup("L_dt", "tbl", "L_dt= #" & Format(Forms!MyForm![L_dt], "yyyy\/mm\/dd") & "#") Then
            If MsgBox("This record has an existing Learn Dt for this Ref", vbOKCancel) = vbCancel Then
                Cancel = True
                Me.Undo
                Exit Sub
            End If
    End If
End If

预期结果应该是如果 Ref 和 L_Dt 相同但 Class 不同则提示用户,如果 L_Dt、Ref 和 Class 都相同,这很好。

目前,当所有 3 个匹配时,这并没有像预期的那样工作。

我认为是 me.ClassTy 行是错误的,但是当我将 <> 更改为 = 时,它仍然不起作用。

标签: vbams-access

解决方案


您错过了一个字段名称:

Format(Forms!MyForm![], ...

推荐阅读