MS Access在表单上制作导航选项并非互斥

时间:2013-04-17 18:51:41

标签: ms-access ms-access-2010

我正在创建一个导航表单,其中一些导航按钮只是将过滤器应用于子表单。问题是现在每个选项都是独占的,即我可以通过分支或职位选择员工。如何使选项不是独占的,以便我可以一次应用多个过滤器?

编辑只是为了添加。我不了解VBA所以我试图使用图形界面和宏来做到这一点。如果使用这些工具无法完成,那么我会找到一个不同的解决方案。

2 个答案:

答案 0 :(得分:1)

如果使用新值替换表单(或子表单)上的.Filter属性,则前一个过滤器将消失。如果您将新子句附加到现有的.Filter字符串,例如通过改变......

[Branch]="Main"

...到...

[Branch]="Main" AND [Title]="Manager"

...然后新过滤器应用这两个标准。

答案 1 :(得分:1)

此解决方案需要适量的VBA(我无法想到不需要它的解决方案)。将用户的选择存储在模块级变量中,然后使用主ApplyFilters子例程应用过滤器。

例如,为每个复选框指定一个AfterUpdate事件。这个事件将做两件事:

  1. 使用用户选择
  2. 设置模块级别变量
  3. 启动 ApplyFilters sub
  4. 由于所有用户的选择现在都存储在模块级变量中, ApplyFilters 可以全部查看。它会:

    1. 获取所有模块级变量并创建主字符串(提示,如果您需要占位符,请使用1=1
    2. 将该字符串应用为子表单的过滤器。
    3. 其他说明: 从主窗体访问子窗体的控件很简单。要将子表单的过滤器更改为字符串NewFilter,请尝试:

       Forms!MyMainFormsName!MySubFormsName.Filter=NewFilter