【发布时间】:2019-01-12 19:48:35
【问题描述】:
当单击表单上的按钮时,我正在运行以下代码:
If DLookup("ECN_Class_I_Change", "ENGINEERING_CHANGE_NOTICE_TABLE", "[ECN_Class_I_Change] = -1") Then
If DLookup("ECN", "ENGINEERING_CHANGE_NOTICE_TABLE", "'ECN' = 'Forms!DRAWING_INFO_FORM!Subform_DRAWING_STATUS!Subform_DRAWING_STATUS_ECN!ECN'") Then
strMessage = "Change third digit."
MsgBox strMessage, vbInformation, "Action Required"
Else
If DLookup("PCP", "REVIEW_PANEL_TABLE", "[PCP] = -1") Then
If DLookup("GWSHW_BL", "REVIEW_PANEL_TABLE", "'[GWSHW_BL]' = 'Forms!DRAWING_INFO_FORM!Subform_DRAWING_STATUS!Subform_DRAWING_STATUS_CONFIGURATION_HWCI_BL!BL_HWCI_HWCI'") Then
If DLookup("GWSHW_HW", "REVIEW_PANEL_TABLE", "'[GWSHW_HW]' = 'Forms!DRAWING_INFO_FORM!Subform_DRAWING_STATUS!Subform_DRAWING_STATUS_CONFIGURATION_HWCI_BL!BL_HWCI_HWCI'") Then
strMessage = "Change fourth digit - HWCI/BL has been certified."
MsgBox strMessage, vbInformation, "Action Required"
Else
strMessage = "Change fifth digit"
MsgBox strMessage, vbInformation, "Action Required"
代码没有抛出任何错误,但没有产生预期的行为。我相当有信心这个问题来自于连续组合多个 If/Dlookup 函数。我一次只使用一个编码,所以我不确定如何组合这些,因为它不仅仅是一个 Dlookup 的多个条件,而是多个 Dlookup 语句。
任何帮助将不胜感激。
美国东部时间 2018 年 8 月 5 日下午 4:55 更新 多亏了这些建议,第一部分代码现在可以工作了。仍然无法让这部分工作:
If Not IsNull(DLookup("PCP", "REVIEW_PANEL_TABLE", "[PCP] = -1")) Then
If Not IsNull(DLookup("GWSHW_BL", "REVIEW_PANEL_TABLE", "GWSHW_BL = " & Me.Subform_DRAWING_STATUS!Subform_DRAWING_STATUS_CONFIGURATION_HWCI_BL!BL_HWCI_BL)) Then
If Not IsNull(DLookup("GWSHW_HW", "REVIEW_PANEL_TABLE", "GWSHW_HW = '" & Me.Subform_DRAWING_STATUS!Subform_DRAWING_STATUS_CONFIGURATION_HWCI_BL!BL_HWCI_HWCI & "'")) Then
strMessage = "Change fourth digit - HWCI/BL has been certified."
MsgBox strMessage, vbInformation, "Action Required"
Else
strMessage = "Change fifth digit"
MsgBox strMessage, vbInformation, "Action Required"
单击按钮时根本没有任何动作发生。正如评论中所述,PCP 是一个是/否字段,GWSHW BL 是一个五位标识符 (1.2.0.0.01),GWS HW HW 是一个三字母缩写词 (ABC)。
【问题讨论】:
-
预期的行为是什么?
-
注意编辑问题以显示更好的缩进以使代码更易于理解。并对我的回答进行编辑,您可能没有看到。
-
为什么取消编辑?代码不太容易理解。
-
ENGINEERING_CHANGE_NOTICE_TABLE 和 REVIEW_PANEL_TABLE 表有什么关系?任何 ID 字段?一对多关系?
-
很抱歉,我并不是要取消编辑。我在格式化代码部分和对我的帖子进行编辑时遇到问题。这是我第一次使用这个论坛。预期的行为是根据 If/Then 语句生成一个消息框。
标签: ms-access if-statement vba if-this-then-that