介绍
那里有很多过滤方法,这是
不是有关如何在Access中进行过滤的教程。 此外,Access在界面中内置了一些很棒的“筛选”选项,但是由于人们不再自己解决问题,通常最终需要进行某种培训。我以为我会分享我们已经使用了两年的非常成功的过滤方法。 不是为了胆小的人
而不是针对初学者 ,实际上, 这不是针对初学者的,因为有很多设置可以使它起作用,但是对于那些正在构建密集数据库的人来说,您可能会发现值得付出努力。从用户的角度来看,它非常易于使用且功能强大。 他们所看到的只是一个工具栏,可以在其中输入一些搜索条件。 一旦他们输入了文本,或者他们从组合框中选择了一个预定义的过滤器,表单的过滤器就会更新以返回其中包含用户信息的记录。 而已。 请勿在文本中添加*。 没有选择要查看的字段。
需要“过滤器”表来定义过滤器。 由于筛选器的根定义位于表中,因此它在执行操作方面具有很大的灵活性。 过滤器表的几个关键字段是
BaseTable和Where 。 这些字段直接与SQL关键字From和Where有关。 存储的Where子句代表SQL Where子句,当应用实际的Filter时,存储的Where子句通常会对其执行一些字符串替换。 该表中还有其他一些字段,用于定义如何使用过滤器以及如何实现过滤器。要定义过滤器(存储在过滤器表中),有一个名为“过滤器”的表单,其中以“过滤器表”为源。 我知道,对吧? 这是一个非常繁忙的表格,因为正在进行很多工作。
就像Access中的大多数内容一样,数据只是其中的一半。 通常,还需要一些代码来理解数据。 要使过滤器正常工作(
您可能不需要了解所有这一切; 仅供参考。 您可能只想跳到示例 ):- 一些控件需要添加到表单
cboFilter
LblFilter
btnFilter
btnRemoveFilter
lblFilterNotice
imgFilterNotice - 一些代码需要添加到表单中。 有关实际代码,请参见示例。 并非所有这些都是必要的,但这是一个很好的清单。
Form_Load()
callFormCurrent()
Form_Current()
btnFilter_Click()
cboFilter_AfterUpdate()
updateFilter()
btnRemoveFilter_Click() - 需要一些全局变量。 它们使用不多,但需要使用它们才能允许弹出窗体收集更多信息的更复杂的过滤器。
公用gFilterName作为字符串
公共gFilterParmText1作为字符串
公用gFilterParmText2作为字符串
公共gFilterParmText3作为字符串
公共gFilterParmText4作为字符串
公用gFilterParmDate1作为字符串
公用gFilterParmDate2作为字符串 - 需要向模块添加一些通用代码,这是完成大部分繁重工作的地方。 还有其他支持这些方法的方法,但请注意这三种方法。
getTableFilters()
buildDefaultFilterWhereClause()
buildFilterWhereClause()
replaceTags()
似乎最好的方法是通过为示例数据库提供一些不同的过滤实现,来了解所有这些如何组合在一起。
- “过滤器”按钮是定义所有过滤器的位置。
- 报价,客户,员工,文件和事件日志按钮将打开示例表格,这些表格都可以使用不同的过滤方法进行过滤。
报价-使用客户和雇员表来构建超级基本报价。
客户-仅一些客户记录。 该表格可以用作查找或基本显示。
员工-基本的用户表,在整个示例中都可用作ComboBox的源。 它还说明了如何过滤权限。
文件-这可以是一张毛茸茸的表格,它允许用户从要过滤和报告的文件夹中导入文件信息列表。
事件日志-示例数据库具有自定义事件处理程序,该事件处理程序将引发的所有错误转储到事件日志中,然后可以对其进行过滤。 - “关于”按钮为数据库提供了一些其他用法。
From: https://bytes.com/topic/access/insights/966994-alternative-filter-method-single-field-filtering