使用准则进行条件查询

  • 来源: 互联网 作者: 若水   2008-03-20/09:42
  • 准则是查询或高级筛选中用来识别所需特定记录的限制条件。使用准则可以实现快速数据检索,让我们只看到想要得到的数据。

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

    在这个表中显示每个司机  的运输情况,共有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]![条件查询]![要查询的司机]”。为了方便,可以用表达式生成器生成这个表达式。

    保存这个查询为“按司机姓名查询”。

    再回到刚才的窗体中,添加一个按钮。在控件向导的第一对话框中选择“杂项/运行查询”。下一步。

    选择刚建的查询“按司机姓名查询”,下一步。

    输入按钮上显示的文本,或者用图片  #p#分页标题#e#来表示按钮,随你啦。下一步,给按钮起个名,完成。

    运行这个窗体,就象本页最上面的图中所示,在组合框中选择“马千斤”,按下“查询”按钮,就会看到查询的结果。

    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 "*国*" 字符串任何位置含有“国”字 张国庆,李爱国


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多