【问题标题】:Logical Operator "AND" not returning expected true逻辑运算符 \"AND\" 未返回预期的 true
【发布时间】:2023-02-22 00:42:57
【问题描述】:

我有一个带有未绑定字段 (Finish_Description) 的表单 (Frm_JobTicket)。这个值应该是从其他 3 个字段中收集的,也是在同一个表单上。他们是:

Cmbo_FinishNumber_JobTicket

包装颜色 1

箔_颜色1

以下是未返回预期 true 的代码

Private Sub Cmbo_FinishNumber_JobTicket_AfterUpdate()

    'Declare Variables
    Dim frm As Access.Form
    Set frm = Forms!Frm_JobTicket

    'Lookup Finish Description based off of the Finish Number entered in Paint Info area of Job Ticket
    frm("Finish_Description") = DLookup("Paint_Finish_Description", "Tbl_PaintFinish", "Finish_Number ='" & frm("Cmbo_FinishNumber_JobTicket") & "'")
        
        If IsNull(frm("Finish_Description")) Then
            GoTo AllFinishOptions
        Else
            Exit Sub
        End If

AllFinishOptions:
        If IsNull(frm("Cmbo_FinishNumber_JobTicket")) Then
            frm("Finish_Description") = frm("Wrap_Color1")
            MsgBox "Wrap Color", vbOKOnly
        ElseIf IsNull(frm("Wrap_Color1")) And IsNull(frm("Cmbo_FinishNumber_JobTicket")) Then
            frm("Finish_Description") = frm("Foil_Color1")
            MsgBox "Foil Color", vbOKOnly
        End If
    
End Sub

当在 Cmbo_FinishNumber_JobTicket 和 Wrap_Color1 都是空值的表单上运行记录时,它仍然输出第一个 MsgBox“Wrap Color”而不是我期望的第二个“Foil Color”。它似乎从未传递到语句的 ElseIf 部分。我不想使用 OR,因为它旨在成为一个渐进式列表。如果 Finish Number 为 null,则插入 Wrap Color。如果 Wrap Color 为 null,则插入 Foil Color。

非常感谢任何有关修复此问题或解决方法的建议,谢谢!

【问题讨论】:

  • 切换你的条件,首先是 AND 位,然后只有 IsNull(frm("Cmbo_FinishNumber_JobTicket")) 因为如果两者都为真,那么当然那个也为真。
  • 那确实奏效了!如果您想将此复制为答案,我可以将其标记并给您信用。

标签: vba ms-access ms-access-2016


【解决方案1】:

切换你的条件,当你需要两者都为真并且只有一个对另一个为真时,你将始终点击 If 语句的第一部分(因此不会到达 ElseIf 部分):

If IsNull(frm("Cmbo_FinishNumber_JobTicket")) Then
            frm("Finish_Description") = frm("Wrap_Color1")
            MsgBox "Wrap Color", vbOKOnly
ElseIf IsNull(frm("Wrap_Color1")) And IsNull(frm("Cmbo_FinishNumber_JobTicket")) Then
            frm("Finish_Description") = frm("Foil_Color1")
            MsgBox "Foil Color", vbOKOnly
        End If

【讨论】:

  • 仍然不允许编辑,与我裸露。点击标签然后输入有点太快了..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2016-07-18
  • 1970-01-01
  • 2017-03-07
相关资源
最近更新 更多