基于两个组合框选择的过滤器表单

Posted

技术标签:

【中文标题】基于两个组合框选择的过滤器表单【英文标题】:Filter form based on two combo box selections 【发布时间】:2018-05-15 16:22:36 【问题描述】:

我的表单上有这两个组合框。每一个都独立过滤表格。但我想根据这两个选择过滤表单。

我在更新事件后将这段代码添加到复选框中,以使用两个组合框过滤表单,但它不起作用:

combo19 是第一个组合框的名称,combo21 是第二个组合框的名称。

Private Sub Check34_AfterUpdate()
 Me.Filter = Me.Combo19 & Me.Combo21
 Me.FilterOn = True
 Me.Refresh

End Sub

【问题讨论】:

每次您不将控件重命名为有意义的名称并在代码中使用默认名称(Combo19Check34)时,一只小猫就会死去。 :( 【参考方案1】:

Filter 属性是一个字符串表达式,由不带 WHERE 关键字的 WHERE 子句组成。例如,以下 Visual Basic 代码定义并应用过滤器以仅显示来自美国的客户:

Me.Filter = "Country = 'USA'" 
Me.FilterOn = True

https://msdn.microsoft.com/en-us/vba/access-vba/articles/form-filter-property-access

在你的情况下,它看起来像:

Me.Filter = "field1 = '" & Me.Combo19 & "'" & " AND field2 = '" & Me.Combo21 & "'"  

Field1 和 Field2 应替换为记录源中的实际列名。 此外,您的代码不会检查 Combo19 或 Combo21 是否为空。

【讨论】:

非常感谢。并感谢您提醒我检查 combo19 和 21 是否为空。我可以做到这一点。再次感谢。

以上是关于基于两个组合框选择的过滤器表单的主要内容,如果未能解决你的问题,请参考以下文章

使用带有数值的组合框访问过滤器表单

使用多个相互构建的组合框过滤表单

访问子表单选择取决于组合框

使用组合框过滤子表单 - ACCESS 2013

使用组合框过滤拆分表单数据表

组合框更改后子表单不重新查询