【发布时间】: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