使用准则进行Access2007条件查询
准则是查询或高级筛选中用来识别所需特定记录的限制条件。使用准则可以实现快速数据检索,让我们只看到想要得到的数据。
如下图,例如有一个车队运输明细数据表,我们以它为例来讲解用不同的方法使用准则。
在这个表中显示每个司机的运输情况,共有425个记录。
1.指定一个准则
建立一个查询,把要使用准则的字段拖拽到设计网格里,在准则行输入表达式。
上图查询的设计视图,查询结果将限制司机姓名为“张美丽”。
这是查询的运行结果,只列出了司机为“张美丽”的记录。
2.指定多个准则
可以对相同的字段或不同的字段输入多个准则。在多个“准则”单元格中输入表达式时,Microsoft Access 将使用 And 或 Or 运算符进行组合。如果此表达式是在同一行的不同单元格中,Microsoft Access 将使用 And 运算符,表示将返回匹配所有单元格中准则的记录。如果表达式是在设计网格的不同行中,Microsoft Access 将使用 Or 运算符,表示匹配任何一个单元格中准则的记录都将返回。
上图中,两个准则在不同的行上,所以 Access 将使用 Or 操作符连接,相当于在姓名字段的准则为: "张美丽" Or "李振华"。
这是查询运行的结果,列出了司机姓名为“张美丽”和李振华的所有记录。
3.运行查询前输入参数
参数查询可以显示一个或多个提示参数值(准则)的预定义对话框。
在要作为参数使用的每一字段下的“准则”单元格中,在方括号内键入相应的提示。此查询运行时,Microsoft Access 将显示该提示。
在这个设计视图中,在日期字段添写了准则:[请输入要查询的日期:]
当查询运行时,先弹出一个对话框,要求输入参数值,提示信息就是准则中[ ]内的文本。如果按取消键,查询将终止,不出现查询结果。
查询的运行结果,因为输入的参数为“99-7-15”,所以只列出了运输日期为1999年7月15日的记录。
在准则中还可以输入更复杂的表达式,比如对于显示日期的字段,在准则中填写“Between [请键入开始日期] And [请键入结束日期]”,运行时将连续出现两个对话框,分别要求输入开始日期和结束日期,结果将显示介于这两个日期之间的记录。
4.从窗体中选择查询的条件
前面的方法虽然简单,但对用户来说操作不够方便,对设计者来说也难以控制,如果通过窗体来实现,这些问题就可以解决了。
如下面的窗体,运行时用户可以在组合框中选择要查询司机的姓名,按下查询按钮就可以看到查询的结果。
下面详细地列出设计的步骤:
创建一个窗体,按下控件向导按钮,在窗体上添加一个组合框。在第一个对话框中
选择“我想让组合框在一个表或查询中查找这些值”,下一步。
选择一个为组合框提供数据的表或查询。下一步。
选择组合框中要显示的数据,通常除了选择要显示在组合框中的字段以外,还选择表的主关键字。下一步。
如果主关键字是自动编号字段,通常选择“隐藏主关键字列”,下一步,给组合框起个名,完成。
建一个查询,在查询的字段的准则中输入刚才窗体组合框的字段名,这里输入“[Forms]![条件查询]![要查询的司机]”。为了方便,可以用表达式生成器生成这个表达式。
保存这个查询为“按司机姓名查询”。
再回到刚才的窗体中,添加一个按钮。在控件向导的第一对话框中选择“杂项/运行查询”。下一步。
选择刚建的查询“按司机姓名查询”,下一步。
输入按钮上显示的文本,或者用图片来表示按钮,随你啦。下一步,给按钮起个名,完成。
运行这个窗体,就象本页最上面的图中所示,在组合框中选择“马千斤”,按下“查询”按钮,就会看到查询的结果。
5.常用的准则表达式
在准则中输入的数据如果是日期,Access 将自动用 # 包围,如果是文本,将自动用 " 包围。
下面列出一些常用的表达式格式,供参考:
表达式 | 含义 | 符合条件的值 |
Between #95-1-1# And #96-2-1# | 介于 95-1-1 和 96-2-1 之间 | 95-5-1,95-12-31 |
Not "王潇洒" | 不是 王潇洒 | 王月亮,张美丽 |
>=10 | 大于等于 10 | 10.5,11,100 |
Year([运输日期])=1999 | 运输日期为1999年,不论几月几日 | 1999-1-10,1999-12-31 |
Is Not Null | 不为空 | "",0,(或任何值) |
Like "*国*" | 字符串任何位置含有“国”字 | 张国庆,李爱国 |