表单开始时的动态月份过滤器

时间:2018-11-02 09:16:08

标签: vba ms-access access-vba

我有一个用于my form的过滤器,可以在其中选择一个月-然后显示与该月有关的所有数据。 翻译: Datenauswahl =选择月份

我的问题是,在90%的时间内,用户希望在当月工作,而不希望查看过去的数据。 每当用户在导航表单上切换选项卡时,过滤器就会重置。

已尝试过我的组合框的默认值:Format(Datum();"mm") 结果Current month input: Yes | Filter: No。因此,必须有一种可能性,即在加载默认值之后,每次夹住导航选项卡或“加载时”,表单都会检查组合框的值并对其进行过滤。

在我的表单上,我激活了加载时过滤器。 表单本身的过滤器是:组合框的Format([tbl_taetigkeitserfassung.TaetigkeitsDatum], 'mm') = '11'-> bc。像Format([tbl_taetigkeitserfassung.TaetigkeitsDatum], 'mm') = Format(Datum();'mm')这样的值不起作用

我希望能有一些帮助或想法来改善我的用户体验

BTW:组合框的代码,如果需要的话:

Private Sub Kombinationsfeld479_AfterUpdate()
    If Me.Kombinationsfeld479 = "Alle" Then
        Me.FilterOn = False
    ElseIf Not IsNull(Me.Kombinationsfeld479) Then
        Me.Filter = "Format([tbl_taetigkeitserfassung.TaetigkeitsDatum], 'mm')='" & Me.Kombinationsfeld479 & "'"
    Me.FilterOn = True
End If

结束子

2 个答案:

答案 0 :(得分:0)

好吧,经过一番测试,我可以说,以下表单属性组合在这里可以正常工作。表单在打开时会自动应用过滤器。

  • Filter On LoadYes
  • FilterFormat([TaetigkeitsDatum],"mm")=Format(Date(),"mm")

因此,在这种情况下,tbl_taetigkeitserfassung.似乎是错误的,应将其删除。还要像在我的示例中一样,用;替换,

答案 1 :(得分:0)

首先,您的数据库将不会拥有超过一年的数据量吗?拥有一年以上的数据后,当前的过滤过程将停止工作。使用“ yyyy-mm”日期格式来说明这一点。

要使过滤工作正常进行,您必须使用Me.Requery跟踪过滤器中的每个更改(甚至启用或禁用它),以便表单根据新的过滤器进行更新。