• [织梦吧]唯一域名:www.upgvv.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > Access教程 >

使用准则进行条件查询

来源: www.upgvv.com 编辑:织梦吧 时间:2012-04-15点击:

  准则是查询或高级筛选中用来识别所需特定记录的限制条件。使用准则可以实现快速数据检索,让我们只看到想要得到的数据。

  如下图,例如有一个车队运输明细数据表,我们以它为例来讲解用不同的方法使用准则。

  在这个表中显示每个司机的运输情况,共有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 "*国*" 字符串任何位置含有“国”字 张国庆,李爱国