У меня есть форма в MS Access, которую я пытаюсь создать для страховых требований. У меня есть все поля, которые мне нужно заполнить, но то, что я хотел бы сделать, это включить или отключить эти поля в зависимости от определенных действий пользователей. Таким образом, поток формы выглядит следующим образом: у меня есть фрейм сверху с двумя переключателями, один для случая с одним претензием и один для случая с несколькими претензиями. Если пользователь нажимает кнопку с одним приложением, все продолжается без проблем. Если пользователь нажимает кнопку с несколькими претензиями, рядом со списком появляется выпадающий список номеров MultiClaim_Incident_ID, которые им нужно выбрать. То, что я пытаюсь сделать, заключается в том, что пользователь выбирает кнопку «Случай с несколькими претензиями» И не выбирает номер идентификатора инцидента из раскрывающегося списка (т.е. оставляет его по умолчанию), тогда остальная часть формы отключается до тех пор, пока не будет исправлена а также все поля ...Включение/выключение полей с определенными критериями MS Access
Кажется, что это должно быть довольно просто, но я не могу заставить его работать, я не уверен, что моя логика ошибочна или что. Вот сокращенная версия моего кода VBA:
Private Sub Form_Load()
Me.SM_Frame.Value = 1
Me.MultiClaim_Drpdwn.Value = Null
End Sub
Private Sub SM_Frame_AfterUpdate()
If SM_Frame.Value = 1 Then
Me.MultiClaim_Incident_ID_Label.Visible = False
Me.MultiClaim_Drpdwn.Visible = False
ElseIf SM_Frame.Value = 2 Then
Me.MultiClaim_Incident_ID_Label.Visible = True
Me.MultiClaim_Drpdwn.Visible = True
ElseIf SM_Frame.Value = 2 & MultiClaim_Drpdwn.Value = Null Then
Me.Incident_Date = Null
Me.Incident_Date.Enabled = False
Me.Claimant_Name.Value = ""
Me.Claimant_Name.Enabled = False
//PATTERN CONTINUES FOR REST OF FIELDS//
MsgBox ("CLEAR EVERYTHING!!")
ElseIf SM_Frame.Value = 1 Then
Me.Incident_Date.Value = ""
Me.Incident_Date.Enabled = True
Me.Claimant_Name.Value = ""
Me.Claimant_Name.Enabled = True
//PATTERN CONTINUES FOR REST OF FIELDS//
MsgBox ("Everything can continue as is")
End If
End Sub
Это выражение возвращает True, когда * Condition1 * и * Condition2 * являются True или False, когда любое условие False: 'Condition1 And Condition2'. Это выражение попытается объединить эквивалент строки * Condition1 * с эквивалентом строки * Условие2 *: 'Условие1 & Условие2' – HansUp
Проверка того, что' foo = Null' никогда не вернется True, независимо от значения * foo *. Используйте 'IsNull (foo)', чтобы проверить, является ли * foo * Null. – HansUp
Значит, вы говорите, что используете амперсанд для логического сравнения, а не для ввода «И»? Кроме того, чтобы очистить текстовые поля, которые могут иметь текст в них, является 'Me.Incident_Date = Null' правильным способом, или лучше сделать' Me.Incident_Date = "" '? –