Имам следния код, който изпълнявам, когато се щракне върху бутон във формуляр:
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 изрази.
Всяка помощ ще бъде високо оценена.
Актуализация на 5.8.2018 г. 16:55 ч. EST Първият раздел на кода вече работи благодарение на предложенията. Все още не мога да накарам тази част да работи:
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).