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