Я вернулся с еще одним Вопросом, касающимся MS Access и его среды VBA.
В настоящее время я создаю базу данных в MS Access 2016.
Основное представление headview
имеет выпадающий список viewcombo
и подчиненную форму listview
.
Что мне нужно: я хочу, чтобы выпадающий список фильтровал представление списка в зависимости от выбранной записи.
Что я сделал:
Private Sub ViewCombo_AfterUpdate()
On Error GoTo Proc_Error
If IsNull(Me.ViewCombo) Then
Me.ListView.Form.Filter = ""
Me.ListView.Form.FilterOn = False
Else
Dim selectedOption As AccessObject
selectedOption = Me.ViewCombo
Select Case selectedOption
Case selectedOption = "open"
Me.ListView.Form.Filter = "Column1='" & "'"
End Select
End If
Proc_Exit:
Exit Sub
Proc_Error:
MsgBox "Error " & Err.Number & " Setting Filter:" & vbCrLf & Err.Description
Resume Proc_Exit
End Sub
Примечание: Me.ListView.form.Filter = "Column1='" & "'"
должно быть пустым, если выбранная запись viewCombo
равна open
, доступные записи Open, Closed, ovedue, cancel and "as seleced
Однако, похоже, что Access не работает таким образом. Как правильно написать операторы выбора регистра?
Редактировать 1:
Значения ComboBox ViewCombo
записаны в нем вручную. В зависимости от выбора значения различные фильтры должны быть установлены на ListView
Пример: * * тысяча двадцать-шесть
Выбранное значение open
Listview фильтруется с помощью заявления: Column1 is empty
Выбранное значение closed
Представление Listview фильтруется с помощью выражения Column 1 is not empty, Column 2 contains the value 10
(10 - это идентификатор статуса, эти данные мне дают сотрудники, с которыми я работаю, они являются внутренними и не имеют значения для базы данных)
Надеюсь, это поможет прояснить ситуацию.