Я боролся с этим некоторое время, и я не понимаю, почему оператор if возвращает истину, когда одно из операторов AND явно ложно.
strtmp = TypeName(ctl) 'Take for instance (and have verified) this returns String type with the value of Label. However the below is returning true in this case.
If (strtmp = "TextBox") And (arControlName(2) = "Desc") And Trim(Me.Controls(ctl.Name).Value & "") = "" Then
'Do some stuff
End If
Моя проблема - перваяоператор if как-то приравнивается к истинному ИЛИ «И» не работает так, как я ожидаю: «И = ИСТИНА, если все условия имеют значение ИСТИНА. И = ЛОЖЬ, если любой изусловия ЛОЖНЫЕ. "ИЛИ Я использую это неправильно?
Возможно, я просто тоже теряю свои шарики:)
РЕДАКТИРОВАТЬ: если утверждения разбиты на 3 отдельных оператора If (как ниже),код работает как положено.
If (strtmp = "TextBox") Then
If (arControlName(2) = "Desc") Then
If Trim(Me.Controls(ctl.Name).Value & "") = "" Then
' Set the value and exit loop
End If
End If
End If