我正在创建一个导航表单,其中一些导航按钮只是将过滤器应用于子表单。问题是现在每个选项都是排他的,即我可以按分支或职位选择员工。如何使选项不是排他性的,以便我可以一次应用多个过滤器?
编辑只是添加。我对VBA一无所知,所以我试图使用图形界面和宏来做到这一点。如果无法使用这些工具完成,那很好,我会找到不同的解决方案。
我正在创建一个导航表单,其中一些导航按钮只是将过滤器应用于子表单。问题是现在每个选项都是排他的,即我可以按分支或职位选择员工。如何使选项不是排他性的,以便我可以一次应用多个过滤器?
编辑只是添加。我对VBA一无所知,所以我试图使用图形界面和宏来做到这一点。如果无法使用这些工具完成,那很好,我会找到不同的解决方案。
If you replace the .Filter
property on a form (or subform) with a new value then the previous filter goes away. If you append a new clause onto an existing .Filter
string, e.g. by changing...
[Branch]="Main"
...to...
[Branch]="Main" AND [Title]="Manager"
...then the new filter applies both criteria.
该解决方案需要适量的 VBA(我想不出不需要它的解决方案)。将用户的选择存储在模块级变量中,然后使用主子ApplyFilters
例程应用您的过滤器。
例如,给每个复选框一个 AfterUpdate 事件。本次活动将做两件事:
由于所有用户的选择现在都存储在模块级变量中,ApplyFilters可以看到它们。它会:
1=1
)其他注意事项:从主窗体访问子窗体的控件很简单。要将子表单的过滤器更改为字符串 NewFilter,请尝试:
Forms!MyMainFormsName!MySubFormsName.Filter=NewFilter