寻寻觅觅——学用Access 2000的查询功能 所谓查询，顾名思义，就是询问有关数据的问题。它能够让你以多种方法使用相同的数据以满足不同的需要。例如，我们所建立的“电脑报社读者服务”数据库中，可以使用一个查询来检索读者的籍贯和学历，用另一个查询来检索读者的专业和职业。因此，查询有两个主要用处，一是限制可见字段的数量；一是以最有用的顺序对查询结果排序。 这里，假设我们已建立好了“电脑报社读者服务”数据库，在该数据库中的“读者调查表”包括了姓名、性别、年龄、民族、籍贯、学历、专业、职业等字段，并且我们以自动编号作为该数据库的关键字段。以下的操作均以该数据库作为对象进行讲解。
查 找
使用“查找”按钮是查找已知存在数据库中的制定信息的最简单的办法。例如，要在“读者调查表”中查找读者“陈玲”，可以先打开“读者调查表”表，在工具栏中找到“查找”按钮（就是那个望远镜），如图1。

在“查找内容”文本框中输入“陈玲”，并在“查找范围”下拉列表中选择“读者调查表”项，以让Access查找所有的字段。单击“查找下一个”按钮。Access将在表中高亮显示“陈玲”。如果我们不能确定某一个读者的准确名字，那就要将对话框中的“查找范围”下拉列表中选择“字段的任何部分”才可以。
筛 选
在处理一个非常大的表时，我们可以使用“筛选”来临时生成一个具有某个共同特征的记录的子集。我们现在来看看它是如何工作的。还是在“读者调查表”的表中，选择“籍贯”字段中的北京，然后在工具栏中找到“按选定内容筛选”按钮（在排序按钮的右边），单击它，Access将只显示“籍贯”为北京的记录了。现在你可以选择“取消筛选”按钮来恢复显示表中的所有记录。
其实我们只要在“北京”那里单击鼠标右键，能做的事情全都显示出来了。(如图2)关于筛选的一共有四项:“按选定内容筛选”、“内容排除筛选”、“筛选目标”和“取消筛选/排序”。第一项和第四项上面已经说过了。“内容排除筛选”，顾名思义，就是排除当前内容的记录了，具体到例子上说，就是显示所有籍贯不是北京的记录。

“筛选目标”应用于有非常多记录的表中，例如在我们的“读者调查表”中，如果记录已经输入了老长的一串，你没有把握其中有没有“籍贯”在重庆的，就用这个指令来处理就是了。
筛选能简化我们的表格，更高级的筛选功能是“按窗体筛选”可以使用一个下拉列表来建立筛选。其作用和使用方法都不是很难。大家有兴趣可以自行去琢磨一下。更重要的原因是它的作用不是很大，因为Access有我们下面要讲的“查询”功能。
查 询
查询比查找和筛选都要复杂一些，但却非常灵活。Access提供了两种类型的查询:选择查询，可以从数据库中查找并抽取信息；动作查询，可以更新或删除记录。
对于一个选择查询，将会识别出满足查询准则的记录和字段的子集，并将这个子集放在称为查询数据表的临时表中。通俗地讲，就是能选择出你想要的记录和你想要的字段，先丢到一个临时的表中，给你这个特定的用户来看。
1.特定字段的选择
下面我们来做一个读者姓名及其性别的查询（且记，这个查询是名词，不是动词，好好理解一下）。
先单击数据库“查询”项中的“新建”按钮，弹出“新建查询”对话框，（如图3）选择“简单查询向导”项，在接下来的对话框中，“表/查询”项中选择“表 读者调查表”，将“姓名”和“性别”字段移动到“选定的字段”中（单击该字段，然后单击“>”按钮）。在最后一个对话框中将题目改为“读者资料查询01”然后单击“完成”按钮即可。

现在我们就生成了一个关于读者姓名和性别的查询。注意，查询是附属于主表存在的，即如果说“读者调查表”中记录内容有改变，这个查询表中的内容也会有相应的变动。同样的，我们也可以在这个查询表中修改和添加记录。注意了，这个查询表中只列出了部分字段，如果主表中某些字段的内容要求必须输入，那么在这里添加记录时就会出错。
2.特定记录的选择
前面是利用向导生成的查询，它只能控制字段的选择。如果我们还想控制记录的选择，那就要用到查询设计功能了。
我们在图3的对话框中选择“设计视图”项，在下一个对话框中，将“读者调查表”表添加入，再关闭对话框，将得到如图4的查询设计界面。

在查询设计界面的上半部分列出了“读者调查表”中的所有字段，其中＊代表所有字段。下半部分是约束条件控制框。我们在特定的字段上双击，将其加入约束条件控制框，表示我们在本查询中准备对这个字段进行一定的约束或者准备在查询中显示这个字段。我们现在将姓名、性别、年龄、民族、籍贯、学历、专业、职业加入到约束条件控制框。
现在我们的目的是选出年龄在25岁以上（即1975年以前出生）的读者的查询表，然后按姓名内容进行升序排序。请大家按图5进行输入，然后单击工具栏上的“执行”按钮（就是那个深红色的感慨号），即可生成相关的表。

注意到其中“显示”的作用没有？其中我们对“年龄”和“籍贯”字段进行了约束但没有让这两个字段显示，而对于“姓名”和“性别”这两个显示字段又没有任何的约束。
3.使用通配符
对于 DOS 级的微机老用户，“ DIR *.* ”的命令还记忆犹新吧，通配符在查询的约束中也可以使用。一般的通配符有两个: ? 代表一个模糊字符， * 代表一个模糊的字符段。举例来说明吧，例如我们想查找所有姓陈的读者，那么我们就可以利用对“姓名”字段以“陈*”这个约束来建立查询，这样的结果是将表中所有读者姓名是“陈”的记录都列出来了。如果你要查找“陈X国”的所有读者，那么约束准则就可以是“陈?国”。
补充说明:在你的约束准则输入后，Access会聪明地理解你的意思，将你的约束表达为更精确的形式，例如本例中将回改成:Like“陈?国”。你刷新一下就会看见了。
4.使用运算符
Access允许我们在约束准则中使用数学运算符，如 = （等于）、<（小于）、>（大于）、< =（不大于）、 > = （不小于）等，就像我们在前面对年龄的约束一样。
除了数学运算符，逻辑运算符也可以在Access中使用。例如，我们想查找35岁年到45岁读者的情况，约束准则就是:(>=35) and (<=45) ；我们想查找北京或者天津的读者，约束准则为：“北京”or“天津”。当然否运算也是可以的，除了北京的读者的约束准则是：not“北京”。
还有一个定义大家需要记住的，那就是我们用一个“ NULL”的字来表示那些某个字段没有值，利用它我们才能找出一些没有记录时间的读者记录。
（周 庆）