豆仔玩库(24):“管家婆”特训第5课——查询进阶
软件世界
上一期为大家介绍了表的简单查询。但是如果遇到要统计一个家庭拥有多少相同的电器,或某个家庭成员还没有某种电器,前面介绍的方法就无能为力了。因此我们需要更丰富的查询手段。查询的结果有时是不允许用户修改的,因此我们还需要对查询进行设置。这一期我们就为大家介绍更丰富的查询手段和相应的设置。
一、更丰富的查询手段
1.交叉表查询
交叉表查询用于显示来源于表中某个字段的总结值(合计、计算以及平均值等),并将它们分组放置在查询表中,一组列在数据表的左侧,一组列在数据表的上部。下面我们以统计家庭成员不同时间的收入总和为例,说明如何创建交叉表查询。
首先按前面介绍的方法打开数据库窗口,选中对象列表中的“查询”单击“新建”,打开“新建查询”对话框选择“交叉表查询向导”,单击“确定”按钮即可看到“交叉表查询向导”。
第一步:要求选择含有交叉表查询结果字段的表或查询。如果这些字段来自多个表,就必须创建一个含有需要字段的查询,然后再用这个查询创建交叉表查询。
第二步:选择交叉表使用哪个字段的数据做行标题,就“个人收入”表而言可以选中“成员编号”。而后单击“>”按钮将它加入“选定字段”框。
第三步:选择交叉表使用哪些字段的数据作为列标题,这里可以选中“收入日期”,然后单击“下一步”按钮继续。
第四步:要求我们选择交叉表的行列交叉处的单元格存放什么对象以及采用何种计算方法。我们可以选中如图1所示的“字段”下的“收入金额”,然后选中“函数”下的“求和”,单击“下一步”按钮继续。最后一步需要为新建的查询输入名称,单击“完成”按钮,一个交叉表查询建立好了。
只要用户在设计过程中仔细观察向导提供的“示例”,并根据需要合理地选择字段,就很容易建立符合自己要求的交叉表查询。
2.查找重复项
随着生活水平的提高,家庭可能拥有多台相同的电器。如果需要从数据库里查找家里有哪些相同物品,也就是查找表中具有相同值的记录,就可以交给“查找重复项查询”来完成。
设计时按相同方法打开“新建查询”对话框。选中其中的“查找重复项查询向导”,按“确定”后开始在向导的带领下建立查询。
第一步:选取需要查找的表或查询,首先根据需要选中“视图”下的某个选项,然后选择对话框中的“表:个人物品”。
第二步:选择需要查找的可能含有重复值的字段,例如选中“物品名称”单击“>”将它放入如图2的“重复值字段”框。
第三步:选择“重复值字段”以外的其他字段。如果你需要知道电器的生产厂家和购买时间,可以选中向导“可用字段”下的“购买时间”和“生产厂家”。最后像其他查询一样在向导对话框中输入查询的名称,单击“完成”按钮就可以了。
3.查找不匹配项
在一个大家庭中,如果你想知道哪些家庭成员没有某种电器,可以建立一个“查找不匹配项查询”。建立前仍然需要打开“新建查询”对话框,选中“查找不匹配查询向导”单击“确定”按钮打开向导。
第一步:需要选择包含待查询记录的表,这里应当选择“家庭成员”。
第二步:选择包含相关记录的表,请选中对话框中的“表:个人物品”,选好之后单击“下一步”按钮。
第三步:选择两个表之间相互匹配的字段,我们可以选中如图3左框中的“姓名”,再选中右框中的“物品名称”,单击“<=>”按钮将两者联系起来。其用途是让Access根据匹配字段进行检索,从而找到不匹配的记录(也就是没有某种电器的家庭成员)。
第四步:选择能够反映查询结果的字段,你可以从对话框的“可用字段”列表中选择“成员编号”和“身份证号”等放入右侧。最后按常规保存刚刚建立的查询。
4.参数查询
按照上面介绍的方法建好查询以后,将它打开然后在“设计视图”下观察,就会发现它们都是选择查询中添加“条件”的结果。如果用户需要查询的对象和条件较多,使用上面介绍的方法就要设计许多查询。假如我们需要查询“收入金额”大于1800元,以及“支出金额大于500元”的记录,可以采用以下方法:按上面介绍的方法打开如图4所示对话框,在作为参数使用的“收入金额”字段下的“条件”单元格中输入提示文字(需要放在“[”和“]”之间),例如“[收入金额大于1800元的记录]”。然后在“支出金额”下输入“[支出金额大于500元]”。以后只要执行查询就会显示“输入参数值”对话框,用户只须按Access的规定依次输入 “>1800”和“<500”,然后就可以看到满足条件的所有记录。
为了给用户提供良好的操作界面,用户一般不会在数据表视图中操作或查看查询,而是用它作为数据源建立窗体,上面介绍的这些操作也都可以在窗体中进行。
二、查询设置
1.设置属性
按照Access查询的默认设置,查询的数据可以在数据表视图中编辑,此时查询能够作为窗体的数据源。如果查询仅仅是提供数据给用户查看,往往不允许对其中的数据进行编辑。此时可以在设计视图中打开查询,单击工具栏中的“属性”按钮打开对话框,里面的“记录集类型”和“记录锁定”可以设置查询数据允许编辑与否。其中“记录集类型”提供了动态集、动态集(不一致的更新)、快照三个选项。选择“动态集”则查询数据表中的值可以修改,而且会动态地改动相应的计算值,而“快照”就不能修改数据表中的数据。“记录锁定”提供了“不锁定”、“所有记录”和“已编辑的记录”三个选项。如果你想禁止查询用户更改查询结果,只要将上述属性修改为“快照”和“已编辑的记录”即可。
2.查看查询结果
Access查看查询结果非常简单,我们只要选中数据库窗中已经建立的查询,单击“打开”按钮就可以看到“查询”结果(即数据表)。或者在查询的设计视图中打开“视图”菜单,选择“数据表视图”也可以看到“查询”结果。
Access对象(表、查询和窗体等)的新建、保存、修改、查看等的方法完全相同,截至目前介绍的这些知识完全可以运用于今后窗体建立的操作。



