【发布时间】:2018-11-06 14:47:35
【问题描述】:
我返回了另一个关于 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
注意:如果viewCombo的选择条目是open,则Me.ListView.form.Filter = "Column1='" & "'"应该为空,可用的条目是Open, Closed, ovedue, cancel and "as seleced
但是,Access 似乎不能以这种方式工作。如何正确编写 select case 语句?
编辑 1:
ComboBox ViewCombo 的值手动写入其中。根据选择的值,将在ListView上设置不同的过滤器
示例:
所选值为open
Listview 使用以下语句过滤:Column1 is empty
选择的值为closed
Listview 使用语句Column 1 is not empty, Column 2 contains the value 10 过滤(10 是状态的 ID,这些是与我一起工作的员工给我的,这些是内部的,对数据库没有意义)
希望这有助于澄清情况。
【问题讨论】:
-
您说组合框的可用条目是
Open、Closed、Ovedue、Cancel和As selected。请准确描述您希望在 ListView 子表单中显示的关于每个可能条目的记录以及如何从技术上过滤掉它们(我们还不知道您的 ListView 子表单的数据源的字段名称和字段类型)。 -
@UnhandledException 我用一个例子编辑了这个问题,希望有助于澄清情况:D
-
@UnhandledException 我自己解决了谢谢你的问题,给了我正确的想法。
标签: ms-access vba ms-access-2016