Ms access 如果满足查询条件,则访问显示消息框

Ms access 如果满足查询条件,则访问显示消息框,ms-access,vba,Ms Access,Vba,您好,我正在尝试根据查询中的值显示一个消息框。我尝试了以下的DLookUp函数: If (DLookup("ID1", "qry_CheckID") = Forms!MainForm!ID2) Then MsgBox "Your ID is bad.", vbOKOnly, "" End If 基本上,我想看看查询中的ID1是否与表单中的ID2匹配。然而,DLookUp并没有像(我)预期的那样工作 在DLookup中包括筛选条件。连接变量时,对表单字段/控件的引用是一个变量。如果没有匹

您好,我正在尝试根据查询中的值显示一个消息框。我尝试了以下的DLookUp函数:

If (DLookup("ID1", "qry_CheckID") = Forms!MainForm!ID2) Then
    MsgBox "Your ID is bad.", vbOKOnly, ""
End If

基本上,我想看看查询中的ID1是否与表单中的ID2匹配。然而,DLookUp并没有像(我)预期的那样工作

在DLookup中包括筛选条件。连接变量时,对表单字段/控件的引用是一个变量。如果没有匹配项,则返回Null。因为您在评论中说,只有在查询中存在匹配项时才需要该消息:

If Not IsNull(DLookup("ID1", "qry_CheckID", "ID1 = " & Forms!MainForm!ID2)) Then
MsgBox "Your ID is bad.", vbOKOnly, ""
End If

您没有为DLookup指定“条件”,因此会返回一个随机值-除非您的查询以某种方式限制了数据。我还尝试了以下操作:如果(DLookup(“ID1”,“qry_CheckID”,“ID1”=Forms!MainForm!ID2)=Forms!MainForm!ID2),那么MsgBox“您的ID不正确”,“vbOKOnly”,“End If”。我没有成功。这就是您的意思吗?在“IF”之前添加debug.print并显示测试的各个部分。我喜欢'Debug.Print“>”&DLookup(..)和“请添加更多信息:如果它没有按预期工作,它在做什么?如果打开查询qry\u CheckID,返回什么?从语句DLookup(“ID1”,“qry\u CheckID”)返回什么值?”?我的查询是针对符合特定条件的人,将他们标记为“坏”ID。我希望有一个按钮(在单独的客户表单上),单击该按钮时,将检查客户ID(来自打开的表单)匹配我的查询中列出的任何ID。如果打开的表单中有与查询中的任何ID匹配的ID,则我希望看到一条消息,上面显示“此客户已标记为坏客户”。“否则,如果没有匹配的ID,则不会发生任何事情。单击按钮不会产生任何结果。我没有收到任何错误消息,也没有任何更改。不显示任何消息框。