首页 > 解决方案 > 表单开始时的动态月份过滤器

问题描述

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

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

所以尝试了我的组合框的默认值:Format(Datum();"mm") 结果: 当前月份输入:是| 过滤器:没有。所以必须有一种可能性,即在加载默认值后,表单会检查组合框的值并过滤它,每次切换导航选项卡或加载时。

在我的表单中,我在 Load 处激活了 Filter。表单本身的过滤器是: Format([tbl_taetigkeitserfassung.TaetigkeitsDatum], 'mm') = '11'-> 组合框的 bc。像这样的值: Format([tbl_taetigkeitserfassung.TaetigkeitsDatum], 'mm') = Format(Datum();'mm')不工作

我会很感激一些帮助或想法来改善我的用户体验

顺便说一句:组合框的代码,如果需要:

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

结束子

标签: ms-accessvba

解决方案


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

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


推荐阅读