筛选是仅查看要在 Access 数据库中显示的数据的有用方法。 可以使用筛选器在窗体、报表、查询或数据表中显示特定记录,或者仅打印报表、表或查询中的特定记录。 通过应用筛选器,可以在不更改基础对象的设计的情况下限制视图中的数据。
本文内容
筛选器的用途
由于应用筛选器后获取的视图仅包含具有所选值的记录,因此在清除筛选器之前,其余数据将保持隐藏状态。
注意: 数据表中的列以及窗体和报表中绑定到表达式的控件不支持筛选。
有多种类型的筛选器,其中一些筛选器易于应用和删除。 Access 包含一些内置于每个视图中的常见筛选器。 筛选器命令的可用性取决于字段的类型和值。
例如,若要查看其生日在特定月份的人员的记录,请单击“BirthDate”列,在“排序 & 筛选器”组中的“开始”选项卡上,单击“筛选”,然后单击对话框中的“日期筛选器”,然后选择所需的日期期限。
1. 可用的筛选器取决于所选列中的数据类型。
2. 期间筛选器中的所有日期 都忽略日期值的日期和年份部分。
在此筛选视图中,只能看到 “BirthDate” 字段的月份部分设置为“四月”的记录。
1. 列标题中的筛选器图标和记录导航器栏指示当前视图已根据 BirthDate 列进行筛选。
2. 在数据表视图中,将鼠标悬停在列标题上时,会看到当前筛选条件。
注意: 将筛选器应用于已筛选的列时,会自动删除上一个筛选器。 虽然一次只能对一个字段生效,但可以为视图中的每个字段指定不同的筛选器。
例如,若要查看居住在英国的联系人的姓名(其生日在 4 月),可以在“CountryRegion”字段和“BirthDate”字段上筛选“联系人”表。 在单个视图中筛选多个字段时,将使用 AND 运算符组合筛选器,如下所示:
CountryRegion = UK AND BirthDate 月份 = 4 月
若要还原未筛选视图:删除筛选器。 删除筛选器会暂时将其从视图中删除,以便可以切换回原始的未筛选视图。
若要在筛选视图和未筛选视图之间切换:在“开始”选项卡上的“排序 & 筛选器”组中,单击“切换筛选器”。
从视图中永久删除筛选器:清除筛选器。 若要了解如何清除筛选器,请参阅 清除筛选器部分。
筛选器设置将一直有效,直到关闭对象,即使切换到对象的另一个视图。 换句话说,如果在数据表视图中筛选窗体,即使切换到“窗体”视图或“布局”视图,筛选器设置仍将有效,并且一直有效,直到关闭窗体。 如果在应用筛选器时保存对象,它将在下次打开对象时可用。 若要了解如何保存筛选器,请参阅本文中的 保存筛选器 部分。
选择并应用筛选器类型
可以从数据类型的多个随时可用的筛选器中进行选择。 这些筛选器在以下视图中作为菜单命令提供:数据表、窗体、报表和布局。 除了这些筛选器,还可以通过完成名为“按窗体筛选) ”的窗体 (来筛选窗体或数据表。
如果需要更大的灵活性,并且喜欢编写表达式,可以使用“ 筛选 文档”选项卡上的选项创建自己的筛选器。
从以下筛选器类型中进行选择:
常见筛选器:筛选特定值或值范围。
按所选内容筛选:通过筛选数据表视图,筛选表中包含与行中选定值匹配的值的所有行。
按窗体筛选:在窗体或数据表中筛选多个字段,或者尝试查找特定记录时。
高级筛选器:用于定义自定义筛选条件的筛选类型。
注意: 如果未在任何视图中看到筛选器命令,则窗体或数据库的设计器可能已禁用筛选。 请联系设计人员以获取进一步帮助。
常见筛选器
除 OLE 对象字段和显示计算值的字段外,所有字段类型都提供通用筛选器。 可用的筛选器列表取决于所选字段的数据类型和值。
右键单击要筛选的字段。 若要筛选多个列或控件,必须单独选择和筛选每个列或控件,或使用高级筛选器选项。 有关详细信息,请参阅本文中的 按窗体 筛选和 高级筛选器 部分。
例如,若要查看“BirthDate”字段可用的筛选器,请在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 筛选”。
1. 若要筛选特定值,请使用检查框列表。 该列表显示字段中当前显示的所有值。
2. 若要筛选值范围,请单击其中一个筛选器,并指定所需的值。 例如,若要查看当前日期和年底之间的生日,请单击“ 介于”之间“,然后在” 之间 “对话框中指定相应的开始和结束日期。 若要查看特定日期的所有生日,请单击该日期,并显示该特定日期的所有生日。
请务必注意,日期字段中的值对特定于类型的筛选器列表有影响。 如果日期字段中的最新日期值位于过去两年内,则会看到一个更长、更详细的筛选器列表。 如果字段中没有一个日期少于两年,则会看到较短的筛选器列表。
注意: 类型特定的筛选器不适用于“是/否”、“OLE 对象”和“附件”字段。 值列表不适用于长文本字段或包含格式文本的字段。
应用通用筛选器
-
在以下任一视图中打开表、查询、窗体或报表:数据表、窗体、报表或布局。
-
确保尚未筛选视图。 在记录选择器栏上,验证是否存在 “未筛选 ”或灰显的 “无筛选器” 图标。
提示: 若要删除特定对象的所有筛选器,请在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级”,然后单击“ 清除所有筛选器”。
-
单击与要筛选的第一个字段对应的列或控件中的任何位置,然后在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 筛选”。
若要应用常用筛选器:指向 “文本 (”或 “数字 ”或“ 日期 ”) 筛选器,然后单击所需的筛选器。 Equals 和 Between 等筛选器会提示输入必要的值。
提示: 某些字符(如 *、% 和 ?)在筛选器文本框中指定时具有特殊含义。 例如, * 表示一个字符串字符,因此字符串 a* 将匹配以 开头的任何字符串,而不仅仅是文本字符串 a*。 若要忽略字符的特殊含义,请将其括在方括号 []中,如下所示:a[*]。 使用 ANSI-89 标准的数据库将 *、?、[、]、, -, 和 # 视为特殊字符。 使用 ANSI-92 标准的数据库将 %、_、[、]、^和 - 视为特殊字符。 可以将任一标准与 Access 结合使用,但不能将两个标准 (混合使用,例如 ?a* 特定表达式中的) 。
若要基于字段值应用筛选器:请清除不想筛选的值旁边的检查框,然后单击“确定”。
若要筛选长列表中的一个或多个值,请先清除“ (全选) 检查框,然后选择所需的值。
若要筛选空值 (null 值指示文本、数字和日期字段中没有数据) :在“检查”框列表中,清除“ (全选) 检查框,然后选择 ( 空白) 旁边的检查框。
按所选内容筛选
若要查看表中包含与行中值匹配的值的所有行,可以通过选择特定值,然后单击“ 选择” 命令来快速筛选数据表视图。 下拉列表显示可用的筛选选项。 这些选项将有所不同,具体取决于所选值的数据类型。 访问选择筛选器选项的另一种方法是右键单击特定单元格。
例如,如果当前在 BirthDate 字段中选择了值 2/21/1967,则在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 选定内容 ”以显示筛选命令,然后选择筛选选项。
命令列表还取决于所选值的数量。 例如,如果仅选择值中的某些字符,则会看到不同的命令列表,具体取决于所选字段的哪个部分。
1. 使用字段值的开头进行筛选...
2. ...字段值的中间...
3. ...或字段值的末尾。
注意: 对部分选定内容进行筛选不适用于多值字段。 “选择”命令不适用于附件。
若要删除筛选器,请在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 切换筛选器”,或单击“ 高级 ”,然后单击“ 清除所有筛选器”。
基于所选内容应用筛选器
-
在以下任一视图中打开表、查询、窗体或报表:数据表、窗体、报表或布局。
-
确保尚未筛选视图。 在记录选择器栏上,验证是否存在 “未筛选 ”或灰显的 “无筛选器” 图标。
-
移动到包含要用作筛选器一部分的值的记录,然后在数据表视图中的列 (内单击) 或控件 (窗体、报表或布局视图) 。
基于部分选择进行筛选;选择所需的字符,在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 所选内容”,然后单击要应用的筛选器。
按窗体筛选
如果要筛选窗体或数据表中的多个字段,或者正在尝试查找特定记录,则此筛选器非常有用。 Access 会创建类似于原始窗体或数据表的空白窗体或数据表,然后允许您根据需要完成任意数量的字段。 完成后,Access 会查找包含指定值的记录。
注意: 不能使用按窗体筛选的多值字段指定字段值,也不能指定具有长文本、超链接、是/否或 OLE 对象数据类型的字段,尽管可以为记录集中的其他字段指定值。
例如,如果要查找联系人标题为 “所有者”的所有客户记录,并且该联系人位于 波特兰 或 Eugene 中,请打开“客户”数据表或窗体,在“ 主页 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级”,然后单击“ 按窗体筛选”。
输入第一组值,然后单击数据表或窗体底部的“ 或 ”选项卡,然后输入下一组值。 请注意,如果希望字段值独立于其他字段值作为筛选器运行,则必须在 “查找 ”选项卡和每个“ 或 ”选项卡上输入该值。 每个 “或 ”选项卡表示一组备用的筛选器值。
仅查看与输入匹配的记录: 在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 切换筛选器”。
通过填写表单应用筛选器
-
在数据表视图中打开表或查询,或在窗体视图中打开窗体。
-
确保尚未筛选视图。 在记录选择器栏上,验证是否存在 “未筛选 ”或灰显的 “无筛选器” 图标。
-
在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级”,然后单击快捷菜单上的“ 按窗体筛选 ”。
-
根据你是在数据表视图还是在窗体视图中工作,请执行下列操作之一:
数据表视图: 单击要筛选的列中的第一行,单击出现的箭头,然后选择一个值。 若要添加其他值,只需单击数据表底部的“ 或 ”选项卡,然后选择另一个值。
窗体视图:单击控件中显示的箭头,然后选择要筛选的值。 若要添加其他值,请单击窗体底部的“ 或 ”选项卡,然后选择另一个值。
提示: 不能使用按窗体筛选来指定多值字段的字段值,但可以为记录集中的非多值字段指定值。
-
若要指定字段的可能值列表,请使用 或 运算符。 例如,在“城市”字段中指定 “波特兰”或“俄勒冈” ,以筛选包含任一值的记录。
-
若要根据控件(如检查框或按钮)的状态进行筛选,请单击控件,使其处于所需状态。 若要将控件返回到非特定位置,使其不会用作筛选记录的条件,请确保它不可用, (灰显) 。
-
若要筛选具有 null (缺少) 、非 null、空白 (为空或“”) 或非空值的记录,请在 字段中键入 Is Null、Is Not Null、“”或 Not “”。
-
-
例如,如果要指定两组备用条件,以便仅查看其 CountryRegion 值为 USA 且其生日为 4 月的联系人的姓名,可以执行以下任一操作:
-
若要检索满足多个条件集任意一组的所有记录,请通过输入第一组条件来指定条件,单击“ 或 ”选项卡,然后输入下一组条件。 请注意,如果希望字段值独立于其他字段值作为筛选器运行,则必须在 “查找 ”选项卡和每个“ 或 ”选项卡上输入该值。 换句话说, “查找 ”选项卡和每个 “Or ”选项卡表示一组备用的筛选器值。
-
另请注意,每次向“ 或 ”选项卡添加字段条件时,Access 都会创建另一个 “或 ”选项卡。 这使你可以指定多个“或”条件。 筛选器返回包含“ 查找 ”选项卡上指定的所有值、第一个“或”选项卡上指定的所有值,或第二个 “或 ”选项卡上指定的所有值等“ 的任何 记录。
-
若要删除筛选器并显示所有记录,请再次单击“ 切换筛选器 ”。
若要修改按窗体筛选,请单击“ 高级”,然后再次单击“ 按窗体筛选 ”。 将显示当前筛选条件集。
高级筛选器
有时,你可能想要应用高级筛选器类型的筛选器,并且可能需要自己编写筛选器条件。 例如,查找包含过去 7 天或过去 6 个月内发生的日期的记录。
使用高级筛选器需要编写表达式。 表达式类似于 Excel 中的公式,以及设计查询时指定的条件。
可以使用高级筛选器的一个示例是,查找过去七天内生日的联系人的姓名。 应用高级筛选器后,可以进一步将结果限制为国家/地区为美国的结果。
应用高级筛选器
-
在以下任一视图中打开表、查询、窗体或报表:数据表、窗体、报表或布局。
-
确保尚未筛选视图。 在记录导航器栏上,验证 “无筛选器” 是否显示为灰色, () 不可用。 如果记录导航器栏不可见,请在“开始”选项卡上的“排序 & 筛选器”组中单击“高级”,然后单击“清除所有筛选器” (如果“清除所有筛选器”显示为灰色,则) 没有有效的筛选器。
-
在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级 ”,然后单击快捷菜单上的“ 高级筛选/排序 ”。
-
将要筛选的字段添加到网格。
-
在每个字段的 “条件” 行中,指定一个条件。 条件以集的形式应用,并且仅显示与 “条件 ”行中的所有条件匹配的记录。 若要为单个字段指定备用条件,请在“ 条件 ”行中键入第一个条件,在 “或 ”行中键入第二个条件,依此类说。
提示:
-
“或”行中的整个条件集作为“条件”行中的条件集的替代项应用。 要应用于这两组条件的任何条件都必须在 “条件 ”行和 “Or ”行中键入。 单击“ 切换筛选器” 以查看筛选的行。
-
学习编写条件的一个好方法是基于所选内容应用通用筛选器或筛选器,该筛选器生成的结果与你要查找的结果接近。 然后,在将筛选器应用于视图后,显示 “筛选 对象”选项卡
-
“筛选文档”选项卡上的特殊命令
“ 筛选 文档”选项卡上有两个特殊命令可供你使用。 右键单击选项卡上设计网格上方的任意位置时,快捷菜单上提供了 “从查询加载 ”和“ 另存为查询” 命令。
“ 从查询加载” 命令将所选查询的设计加载到网格中。 这允许你将查询条件用作筛选条件。
使用 “另存为查询” 命令可将筛选器设置另存为新查询。
删除或重新应用筛选器
若要切换到未筛选的数据视图,请单击记录导航器栏上的“已筛选”以还原到完整视图,从而删除筛选器。
删除当前筛选器时,将从视图中的所有字段中暂时删除筛选器。 例如,如果首先对 CountryRegion 和 BirthDate 字段应用筛选器,然后删除筛选器,则会再次看到所有记录。
若要重新应用最新的筛选器,请单击记录导航器栏上的“ 未筛选 ”。
清除筛选器
在不再需要筛选器时清除它。 清除筛选器会将其从视图中删除,并且无法再通过在状态栏上单击“ 未筛选 ”来重新应用它。 可以从单个字段中清除单个筛选器,也可以从视图中的所有字段清除所有筛选器。
-
若要从单个字段中清除单个筛选器:右键单击筛选的列或控件,然后单击“ 从字段名称中清除筛选器”。
-
若要清除所有字段中的所有筛选器:在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级”,然后单击快捷菜单上的“ 清除所有筛选器 ”。
保存筛选器
如果要再次使用筛选器,则保存筛选器可能很有用。 在关闭表、查询、窗体或报表时生效的筛选器设置将自动与 对象一起保存,并可用于重新应用。 但是,默认情况下,下次打开对象时,不会自动应用筛选器设置。
若要确保在下次打开表、查询、窗体或报表时自动应用当前筛选器,请从对象的属性表中将对象的 FilterOnLoad 属性设置为 “是”。 下次打开对象时,将应用 FilterOnLoad 属性。 每当更改此设置时,都必须关闭对象并重新打开它才能应用新设置。
注意: FilterOnLoad 属性设置仅在对象加载时应用。 在设计视图中为对象设置此属性,然后切换到另一个视图不会导致应用设置。 必须关闭并重新打开 对象, 对 FilterOnLoad 属性设置的更改才会生效。