
5.3 使用设计视图创建查询
使用设计视图可以创建有条件的查询或较为复杂的查询。查询的设计视图窗口分为两部分,上部分显示查询所使用的表对象,下部分是查询设计网格,用于设定具体的查询条件。本节主要介绍使用设计视图创建各类查询的方法。
5.3.1 选择查询
由查询的类型可知,上一节已详细介绍了使用查询向导创建各类选择查询的方法。本节介绍使用设计视图创建选择查询的方法。下面在“人事管理”数据库中,以“员工原始信息”和“员工信息表”作为数据源,查询员工明细情况。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-28所示。

图5-28 单击【查询设计】按钮
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,按住Ctrl键不放,分别选择“员工原始信息”和“员工信息表”,单击【添加】按钮,如图5-29所示。

图5-29 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。此时在查询的设计视图上部分可以看到添加的表对象,下部分即为选择查询的查询设计网格,包括【字段】、【表】、【排序】、【显示】等行,如图5-30所示。

图5-30 查询的设计视图
提示
【字段】行用于设置查询结果中显示的字段;【表】行用于设置字段的来源表;【排序】行用于定义字段的排序方式,分为升序、降序和不排序3类;【显示】行用于控制是否在结果中显示该字段;【条件】行用于设定查询条件;【或】行用于设定查询的第二个条件。
步骤4单击【字段】行中第一列的下拉按钮,在弹出的下拉列表显示了两个表中所有的字段,这里选择【员工信息表.员工ID】字段,即可成功添加该字段,如图5-31所示。

图5-31 添加“员工ID”字段
提示
在表中直接双击字段,或者将字段拖动到【字段】行中,都可添加字段到查询设计网格中。
步骤5使用同样的方法,将两个表中其他相关的字段添加到【字段】行中,如图5-32所示。

图5-32 添加其他字段
提示
添加字段后,【表】行会自动显示该字段所在的表。若数据源表和字段较多,那么【字段】下拉列表中的选项会增多,此时可以先在【表】的下拉列表中选择数据源表,那么【字段】下拉列表中仅会显示该表中的字段,选择相应的字段即可。
步骤6设置完成后,单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,运行该查询,如图5-33所示。

图5-33 单击【运行】按钮
步骤7此时将切换到数据表视图,在其中可以查看选择查询的结果,如图5-34所示。

图5-34 选择查询的结果
步骤8单击快速访问工具栏上的【保存】按钮,弹出【另存为】对话框,在【查询名称】文本框中输入名称“选择查询”,单击【确定】按钮,保存创建的查询即可,如图5-35所示。

图5-35 【另存为】对话框
提示
在关系连接线上单击鼠标右键,在弹出的快捷菜单中选择【联接属性】菜单命令,如图5-36所示。将弹出【联接属性】对话框,在其中可设置对表的哪些记录进行查询,如图5-37所示。

图5-36 选择【联接属性】菜单命令

图5-37 【联接属性】对话框
第1项:默认选项,表示只有两个表中都存在的“员工ID”记录才能够被查询。
第2项:“员工原始信息”中的所有记录都将被查询。此外,若只存在于“员工信息表”,在“员工原始信息”中没有相关联记录,这些记录将不能够被查询。
第3项:与第2项相反。
5.3.2 设置查询条件
查询条件类似于一种公式,它是由运算符、常量值、函数和特殊操作符等组成的表达式。以下几种运算符或操作符在设定查询条件时会经常使用,包括<、>、<=、>=、<>、Between、And、Not、Or、In、Is、Like和Between…And等。其中In表示指定值属于列表中所列出的值,Like表示查找相匹配的文字。
对于不同数据类型的字段,使用的查询条件也不同。表5-1列出了一些常用的查询条件,用户在使用时可以作为参考。
表5-1 常用的查询条件示例

提示
不同数据类型的字段,查询条件的用法大致相同。对于字符串类型,即文本类型的字段值,需要在两边用英文的双引号" "括起来,而对于日期/时间类型的字段值,在日期值两边括以#字符。
下面在上一节创建的选择查询中设置查询条件,从而查询出所有“张”姓员工的信息。具体的操作步骤如下。
步骤1接上一节的操作,进入查询的设计视图,在“员工姓名”字段对应的【条件】行中输入查询条件“Like "张*"”,如图5-38所示。

图5-38 设置查询条件
提示
星号“*”表示任意字符串,也称为通配符。
步骤2单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,运行该查询,在其中可以看到,此时将查询出所有“张”姓员工的信息,如图5-39所示。

图5-39 查询结果
提示
如果在【条件】行和【或】行中同时输入查询条件,那么各查询条件之间是“Or”的关系,查询结果只需满足其中一个查询条件即可。
5.3.3 生成表查询
生成表查询是指从一个或多个表中提取出数据,并将结果生成到一个新表中。下面将“员工信息表”和“工资明细表”中的某些记录生成到新表中。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-40所示。

图5-40 单击【查询设计】按钮
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,按住Ctrl键不放,分别选择“工资明细表”和“员工信息表”,单击【添加】按钮,如图5-41所示。

图5-41 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。此时在查询的设计视图中可以看到添加的表对象,单击【查询工具】→【设计】选项卡下【查询类型】组的【生成表】按钮,如图5-42所示。

图5-42 单击【生成表】按钮
提示
将光标定位在设计视图上部分的空白处,单击鼠标右键,在弹出的快捷菜单中选择【查询类型】→【生成表查询】菜单命令,也可创建生成表查询,如图5-43所示。

图5-43 选择【生成表查询】菜单命令
步骤4弹出【生成表】对话框,在【表名称】文本框中输入生成的新表名称“实发工资表”,单击【确定】按钮,如图5-44所示。

图5-44 【生成表】对话框
提示
在【生成表】对话框中,默认选中【当前数据库】单选按钮,表示将生成的新表保存在当前的数据库中,若选择第2项,表示将生成的新表保存在其他数据库中。
步骤5进入生成表查询的设计视图,在查询设计网格中,将“工资明细表”中的“员工ID”“员工姓名”“实发工资”“发薪日期”4个字段和“员工信息表”的“员工性别”“员工职位”两个字段添加到【字段】行中,如图5-45所示。

图5-45 添加字段
步骤6添加完成后,单击【查询工具】→【设计】选项卡下【结果】组的【视图】按钮,切换至数据表视图,在其中可预览生成新表的效果,如图5-46所示。

图5-46 预览生成新表的效果
步骤7预览后,切换回设计视图,然后单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-47所示。

图5-47 单击【运行】按钮
技巧
切换至数据表视图后,用户可以预览查询结果,如果对结果不满意,可以返回至设计视图进行修改。若直接单击【运行】按钮,系统会执行查询,执行后数据结果将无法修改。
步骤8弹出Microsoft Access对话框,提示是否要用选中的记录创建新表,单击【是】按钮,如图5-48所示。

图5-48 Microsoft Access对话框
步骤9此时在导航窗格中可以看到生成的新表“实发工资表”。注意,该表与其数据源表并没有任何关系或连接,效果如图5-49所示。

图5-49 生成的“实发工资表”
步骤10切换至查询对象,单击【保存】按钮,将弹出【另存为】对话框,在【查询名称】文本框中输入名称“生成表查询”,单击【确定】按钮,保存创建的查询即可,如图5-50所示。

图5-50 【另存为】对话框
步骤11若要再次执行查询,直接在导航窗格中双击该查询对象,如图5-51所示。

图5-51 双击查询对象
提示
该查询图标前有一个感叹号,表示该查询是一个操作查询。
步骤12弹出警告对话框,提示该查询将修改表中的数据,单击【是】按钮,如图5-52所示。

图5-52 提示查询将修改表中的数据
步骤13继续弹出警告对话框,提示执行查询前将删除之前已有的表,单击【是】按钮,如图5-53所示。

图5-53 提示执行查询前将删除之前已有的表
步骤14继续弹出警告对话框,提示是否用选中的记录创建新表,单击【是】按钮,即可执行生成表查询,从而生成新表,如图5-54所示。

图5-54 提示是否用选中的记录创建新表
5.3.4 更新查询
更新查询可以对一个或多个数据表中的数据进行有规律的、批量的更新或修改。当数据库中只有一条或几条记录需要修改时,用户可以手动地逐条查找然后修改。但是当有大量数据要修改时,就可以使用更新查询来进行批量的修改。下面以更新“工资明细表”为例进行介绍,具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-55所示。

图5-55 单击【查询设计】按钮
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,选择“工资明细表”,单击【添加】按钮,如图5-56所示。

图5-56 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。此时在查询的设计视图中可以看到添加的表对象,单击【查询工具】→【设计】选项卡下【查询类型】组的【更新】按钮,如图5-57所示。

图5-57 单击【更新】按钮
步骤4进入更新查询的设计视图,在查询设计网格中,将“保险费”字段添加到【字段】行中,在【更新到】行中输入表达式“-[保险费]”,如图5-58所示。

图5-58 添加字段并输入表达式
提示
表达式“-[保险费]”表示为该字段的所有数据添加负号。
步骤5设置完成后,切换至数据表视图,预览查询结果,然后切换回设计视图,单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-59所示。

图5-59 单击【运行】按钮
步骤6弹出Microsoft Access对话框,提示是否要更新记录,单击【是】按钮,如图5-60所示。

图5-60 Microsoft Access对话框
步骤7执行更新查询后,在导航窗格中双击打开“工资明细表”,在其中可以看到,“保险费”字段的数据已全部添加了负号,最后保存创建的查询即可,如图5-61所示。

图5-61 更新查询的结果
提示
执行更新操作后,即使按下Ctrl+Z组合键撤销操作,“工资明细表”的记录也是无法恢复的。
5.3.5 追加查询
追加查询是将一组记录从一个或多个数据源表或查询中添加到一个或多个目标表的末尾。通常情况下,数据源表和目标表位于同一数据库中,但也可以位于不同数据库中。
下面在“人事管理”数据库中,将“7月工资明细”中实发工资大于4000元的记录追加到“8月工资明细”中。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-62所示。

图5-62 单击【查询设计】按钮
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,选择“7月工资明细”选项,单击【添加】按钮,如图5-63所示。

图5-63 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。此时在查询的设计视图中可以看到添加的表对象,单击【查询工具】→【设计】选项卡下【查询类型】组的【追加】按钮,如图5-64所示。

图5-64 单击【追加】按钮
步骤4弹出【追加】对话框,在【表名称】的下拉列表中选择【8月工资明细】选项,表示将数据追加到“8月工资明细”中,然后单击【确定】按钮,如图5-65所示。

图5-65 【追加】对话框
步骤5进入追加查询的设计视图,在查询设计网格中,将“工资ID”字段添加到【字段】行中,此时【追加到】行会自动显示出“8月工资明细”中相对应的字段,如图5-66所示。

图5-66 添加“工资ID”字段
步骤6将“7月工资明细”中剩余的字段都添加到【字段】行中,然后在“实发工资”字段对应的【条件】行中输入条件表达式“>4000”,如图5-67所示。

图5-67 添加其余字段并设置条件
步骤7设置完成后,单击【查询工具】→【设计】选项卡下【结果】组的【视图】按钮,切换至数据表视图,在其中可预览要追加的数据,如图5-68所示。

图5-68 预览要追加的数据
步骤8预览后,切换回设计视图,然后单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-69所示。

图5-69 单击【运行】按钮
步骤9弹出Microsoft Access对话框,提示是否要追加选中行,单击【是】按钮,如图5-70所示。

图5-70 Microsoft Access对话框
步骤10执行追加查询后,在导航窗格中双击打开“8月工资明细”,在其中可以看到,已经成功追加了“7月工资明细”中实发工资大于4000元的记录,最后保存创建的查询即可,如图5-71所示。

图5-71 追加查询的结果
5.3.6 删除查询
删除查询是从一个表或两个相关表中删除满足指定条件的记录。下面在“人事管理”数据库中,将“员工信息表”中的员工性别为“男”的记录删除。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,备份“员工信息表”,创建该表的副本,然后单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-72所示。

图5-72 单击【查询设计】按钮
技巧
由于“员工信息表”与其他表存在表关系,若删除了“员工信息表”中的数据,那么其他表中相关联的数据也会删除,并且删除操作是不可还原的。为了避免删除其他表中的数据,这里需创建“员工信息表”的副本,并对副本执行删除查询。
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,选择“员工信息表的副本”,单击【添加】按钮,如图5-73所示。

图5-73 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。此时在查询的设计视图中可以看到添加的表对象,单击【查询工具】→【设计】选项卡下【查询类型】组的【删除】按钮,如图5-74所示。

图5-74 单击【删除】按钮
步骤4进入删除查询的设计视图,在查询设计网格中,将“员工性别”字段添加到【字段】行中,在对应的【条件】行中输入删除条件“男”。然后将“员工信息表的副本.*”添加到【字段】行中,如图5-75所示。

图5-75 添加字段并设置条件
提示
“员工信息表的副本.*”表示“员工信息表的副本”的所有字段。
步骤5设置完成后,单击【查询工具】→【设计】选项卡下【结果】组的【视图】按钮,切换至数据表视图,在其中可预览要删除的数据,如图5-76所示。

图5-76 预览要删除的数据
步骤6预览后,切换回设计视图,然后单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-77所示。

图5-77 单击【运行】按钮
步骤7弹出Microsoft Access对话框,提示是否要删除选中的记录,单击【是】按钮,如图5-78所示。

图5-78 Microsoft Access对话框
步骤8执行删除查询后,在导航窗格中双击打开“员工信息表的副本”,在其中可以看到,已经成功删除了员工性别为“男”的记录,最后保存创建的查询即可,如图5-79所示。

图5-79 删除查询的结果