4.2 基本选择查询设计
选择查询是最常见的查询类型,它从一个
或多个的表中检索数据,并且允许在可以
更新记录(带有一些限制条件)的数据表
中进行各种操作数据。也可以使用选择查
询来对记录进行分组,并且对记录作总计、
计数、平均以及其他类型总和的计算。选
择查询的优点在于能将多个表或查询中的
数据集合在一起,或对多个表或查询中的
数据执行操作。
4.2 基本选择查询设计
4.2.1 选择查询设计视图
4.2.2 基表联接的意义
4.2.3 排序行和显示行的作用
4.2.4 条件行的作用及其设计方法
4.2.5,零售商店管理信息系统, 中
的选择查询设计
选择查询的设计视图如图 4-4所示,被分为上下
两个部分。上部为数据源显示区;下部为参数设
置区,由五个参数行组成,分别是字段行、表行、
排序行、显示行和准则行。查询对象基于数据源
而生成,且数据源往往不仅仅只有一个,这些数
据源既可以是数据表对象,也可以是查询对象。
设计具有多个数据源的查询对象,需在, 显示表,
对话框(如图 4-3所示)中逐一将各个数据源添
加至查询设计视图的数据源列表区内。若在关闭
,显示表, 对话框后,还需添加数据源,可在数
据源列表区内右击鼠标,在随之弹出的快捷菜单
上单击【显示表】,或在查询设计视图菜单栏上
单击【视图】 |【显示表】,均可再现, 显示表,
对话框,参见图 4-3。
4.2.1 选择查询设计视图
在查询设计视图中,选择确定多个数
据源(表或查询)后,必须保证各
个数据源数据间存在必要的联接关
系。表与表间的联结如果已在数据
库视图中通过建立表间关系形成,
则这些关系将被继承在查询设计视
图中。如果上述关系不存在,则必
须在查询设计视图中指定,如此指
定的关系仅在本查询中有效。
在查询设计视图中指定表间关系的操作为,
从作为数据源的表或查询字段列表中将一个
字段拖到另一个作为数据源的表或查询字段
列表中的相等字段(即具有相同或兼容的数
据类型且包含相似数据的字段)上,即完成
了两个数据源之间的联接。所谓将一个字段
拖到另一个字段上,是指用鼠标指向一个字
段,然后按住鼠标左键拖曳至另一个字段上,
然后放开鼠标左键。使用这种方式进行联接,
只有当联接字段的值相等时,Access才会从
两个表或查询中选取记录。图 4-8所示为销
售数据记录查询中含有“进货单价”以及销
售利润数据的设计参数。
图 4-7 查询数据源设定与字段
显示格式设定
在图 4-8中可以看到,由于这个查询的数据分别
取自, 库存数据记录, 表和, 销售数据记录,
表,因此必须指定这两个数据源,这两个数据
源称为本查询的基表。基表之间必须建立联接,
且其联接字段必须具有相同类型。如果已经在
数据库设计视图指定了两个基表的联接,则在
查询设计视图中会得到继承。如果未在数据库
设计视图指定两个基表的联接,则在查询设计
视图中指定的联接仅在本查询中有效。
4.2.2 基表联接的意义
Access支持的联接类型有三种:只包含来自两
个表的联接字段相等处的行;包括所有, 主表,
的记录和那些联接字段相等的, 从表, 的记录;
包括所有, 从表, 的记录和那些联接字段相等
的, 主表, 的记录。关于表对象联接概念中的
,主表, 和, 从表, 的含义,请参阅第三章中
的相关内容。
在上述三种联接类型中,第一种联接类型是默
认类型。上述实例采用第一种联接类型,即只
显示在, 库存数据记录, 和, 销售数据记录,
中均存在的记录,如图 4-9所示。
图 4-8,销售数据明细查询”的
查询视图
4.2.3 排序行和显示行的作用
1.排序的作用与设计方法
2.显示行的作用与设计方

如同在第三章中所述,排序可以
令某一列数据有顺序的排列,便
于查看。在设计查询对象时,若
需要哪一列数据有顺序的排列,
可单击位于该列排序行上的下拉
式列表框,从中选择所需的排序
种类,如图 4-6所示。
1.排序的作用与设计方法
在查询设计视图中,显示行内是一个复
选框。如果希望某一字段的数据在查
询运行时得到显示,则在该复选框中
单击,使其显示有, √, 符号,这也
是 Access的默认参数;如果希望某一
字段的数据在查询运行时不显示,但
又需要它参与运算,则在该复选框中
单击,使其中的, √, 符号消失。对
于既不需要显示,也不需要参与运算
的字段,根本就不要将其选入查询中。
2.显示行的作用与设计方法
设定准则恐怕是设计查询对象时最为困难
的操作。如果需要给定某种条件来筛选
数据记录,就必须要设定准则了。即,
准则是为筛选数据记录设定的条件,条
件必须是一个合法的 VBA关系或逻辑表
达式。 VBA语句及其表达式等内容留待
第五、九章介绍,本小节介绍利用向导
设定准则的操作方法。
4.2.4 条件行的作用及其设计方法
在查询设计视图中,令光标停留
在需要设定准则的字段中的准则
行内,单击查询设计视图工具栏
上的, 向导, 工具按钮,,,
即弹出, 表达式生成器, 对话框,
如图 4-10所示。准则的设定可以
在这个对话框中操作完成。
例如,如果希望查看其销售利润位
于 1元至 5元之间的那些商品的销售数
据,就应该在, 销售利润, 列的准则
行内输入, Between 1 And 5”这样的
VBA表达式。这样的表达式可以在准
则行中直接输入,但不如在, 表达式
生成器, 对话框中操作生成,请参阅
图 4-10中的图示。
图 4-9 应用“表达式生成器”
设定查询准则
在, 表达式生成器, 对话框中,双击对话框左
下方列表框中的, 操作符,,在随之出现的中
下方列表框中选择, 比较,,在对话框右下方
的列表框中双击, Between”选项,对话框上端
的文本框中即出现, Between [表达式 1] And [表
达式 2]” 字样。这表明,本表达式使用
,Between”操作符。, Between”是一个双元操
作符,需要为其确定两个操作数。单击, [表达
式 1]” 后,在此处输入 1,即输入了第一个操作
数;再单击, [表达式 2]”,在此处输入 5,即
输入了第二个操作数。此时可以看到输入的表
达式为, Between 1 And 5”。 表达式输入完毕后,
单击对话框上的, 确定, 按钮,,,
对话框消失。查询设计视图中对应准则行上的
表达式就生成了。接着,可以打开这个查询对
象,与前述查询对象打开时的显示数据进行比
较,观察该准则的作用。也可以在查询设计视
图中切换至 SQL视图,仔细观察对应的 SQL语
句。
数据库应用系统的实际应用总是根据需
求进行的,设计查询对象应该包括哪
些字段、以哪种顺序排列以及筛选条
件如何确定,等等,都应该根据需求
分析来决定。尤其是在筛选条件准则
中,常常不能使用常量,而需使用变
量,且这些变量的赋值又往往是用户
在窗体上操作时输入的。因此,查询
准则中的条件表达式常常包含着变量。
4.2.5,零售商店管理信息系统”中的
选择查询设计
图 4-10,库存数据记录查询”的属性设置
图 4-10所示查询对象所对应的 SQL语句为:
SELECT 销售数据记录,货号,销售数据记录,货
名,销售数据记录,规格,
销售数据记录,计量单位,销售数据记录,销售单
价,销售数据记录,销售数量,
[销售数据记录 ]![销售单价 ]*[销售数据记录 ]![销
售数量 ] AS 销售金额,
销售数据记录,销售日期,销售数据记录,销售人

FROM 销售数据记录
WHERE (((销售数据记录,销售日期 )=[Forms]![销
售数据录入 ]![Text29]) AND
((销售数据记录,销售人员 )=[Forms]![销售数据录
入 ]![Combo45]));
图 4-11,柜存数据记录查询”的属性设置
?“柜存数据记录查询”对象所对应的
SQL语句为:
? SELECT 柜存数据记录,货号,柜存数据记
录,货名,柜存数据记录,规格,柜存数据记
录,计量单位,
柜存数据记录,销售单价,柜存数据记录,柜
存数量,
[柜存数据记录 ]![销售单价 ]*[柜存数据记
录 ]![柜存数量 ] AS 柜存金额,
柜存数据记录,上柜日期,柜存数据记录,上
柜人,柜存数据记录,营业员
FROM 柜存数据记录 ;
图 4-12,销售数据记录查询”的属性设置
?,销售数据记录查询”对象所对应的 SQL语句
为:
SELECT 销售数据记录,货号,销售数据记录,货名,
销售数据记录,规格,销售数据记录,计量单位,
销售数据记录,销售单价,销售数据记录,销售数量,
[销售数据记录 ]![销售单价 ]*[销售数据记录 ]![销
售数量 ] AS 销售金额,
销售数据记录,销售日期,销售数据记录,销售人员
FROM 销售数据记录
WHERE (((销售数据记录,销售日期 )=[Forms]![销
售数据录入 ]![Text29]) AND
((销售数据记录,销售人员 )=[Forms]![销售数据录
入 ]![Combo45]));