第5章 报表
●章前导读
通过本章,你可以学习到:
◎报表的基本知识
◎编辑报表
◎报表计算和汇总
◎设计复杂报表
◎创建报表
◎报表排序和分组
◎创建子报表、多列报表
◎预览、打印、保存报表
本章学习流程图
5.1 报表的基本概念和组成
前面已经学过通过查询查找所需要的数据,以及通过窗体显示数据。但是,有时候我们希望数据以一定的格式输出或打印出来。在Access 中,报表主要用来按一定规则输出打印数据。下面介绍报表的概念、组成及分类等。
5.1.1 报表的概念
学习提示
【掌握】报表的概念
报表是Access数据库的一个对象,主要用于对数据进行分组、计算、汇总和输出,根据一定规则打印输出格式化信息,为查看和打印概括性信息提供了灵活的方法。用户可以在报表中控制每个对象的大小和显示方式,并可以按照所需方式显示相应内容,还可以在报表中添加多级汇总、统计比较,甚至可以加上图片和图表。
Access数据库提供了3种报表视图:“设计”视图(如图5-1 所示)、“打印预览”视图(如图5-2所示)、“版面预览”视图(用途如表5-1所示)。
图5-1 “设计”视图
图5-2 “打印预览”视图
表5-1 “报表”视图
请注意
“版面预览”视图显示的是报表示例,而非实际打印效果。
5.1.2 报表设计区
学习提示
【熟记】报表的组成与设计区
从图5-1所示的报表“设计”视图可以看出,报表由5部分组成,如图5-3所示,各部分作用描述如表5-2所示。
图5-3 报表组成
表5-2 报表的组成
在报表的“设计”视图中,区段是带状形式,也被称为“节”。在报表中,用户可以根据信息的不同,将其放置在不同的节中,每个节在页面和报表中具有特定的目的,并按照预期顺序输出打印。
下面将结合图5-1、图5-2介绍设计区域的空间安排及其与报表输出内容的对应关系。
1.报表页眉
报表页眉中的内容只显示在报表首页最上方。一般而言,报表页眉中显示的是报表的标题。图5-1中报表页眉节的标签控件“学生”,显示在图5-2中就是报表首页首行的标题文字“学生”。
2.页面页眉
页面页眉主要用来显示列标题,位于报表页眉下方,它会在报表每一页的上端重复出现。图5-1中的“姓名”、“学号”、“专业”、“籍贯”等标签控件对应于图5-2显示的列标题“姓名”、“学号”、“专业”、“籍贯”等。
3.组页眉
在报表设计5个基本节区域的基础上,用户可以使用“排序与分组”属性设置“组页眉/组页脚”区域,以实现报表的分组输出和分组统计。其中组页眉节内主要安排文本框或其他类型控件,以输出分组字段等数据信息。
图5-4给出的“学生基本信息表”设计视图是以学生“籍贯”进行分组统计的。
图5-4 报表分组显示、统计设计
在图5-4中,用户通过“排序与分组”属性可设置出分组字段的组页眉(编号页眉)和组页脚(编号页脚)两个节区。显示效果如图5-5所示。
图5-5 报表分组显示、统计输出(部分)
用户可以建立多层次的组页眉及组页脚,但一般不超过3~6层。
4.主体
主体节主要用来显示或处理所有记录,它以文本框或标签控件绑定显示,并且可以包含计算字段。
5.组页脚
组页脚节内主要安排文本框或其他类型控件显示分组统计数据。组页眉和组页脚可以根据需要单独设置使用。
图5-3所示的“编号页脚”节内安排了依据学生编号分组输出平均成绩的文本框控件及相关标题显示的标签控件。输出报表时,其数据输出在每组的结束位置,效果如图5-4所示。
6.页面页脚
页面页脚一般位于页面下端,主要用于显示页码、时间等,如图 5-1 中的标签控件“[Pages] & "页,第"& [Page] & "页"”、“ =Now()”。
页面页脚也会在每一页重复出现。
7.报表页脚
该节区一般是在所有的主体和组页脚输出完成后才会出现在报表的最后面。通过在报表页脚区域安排文本框或其他一些控件,用户可以输出整个报表的计算汇总或其他统计信息。
5.1.3 报表的分类
学习提示
【熟记】报表的分类
报表有4种基本类型:表格式、纵栏式、图表式和标签式,各类型说明如表5-3所示,各类报表的图对应于图5-6~图5-9。
表5-3 报表分类
图5-6 表格式报表
图5-7 纵栏式报表
图5-8 图表式报表
图5-9 标签式报表
5.2 创建报表
5.2.1 使用“自动创建报表”创建报表
学习提示
【应用】使用“自动创建报表”功能创建报表
自动创建报表是使用数据来源中的所有字段自动生成报表的方法,有纵栏式、表格式两种版面,是最快捷的创建报表方式。最后会自动生成报表输出记录源所有字段的全部记录。
【例5-1】 使用“自动创建报表”功能创建“学生”报表。
在“学生管理”数据库窗体中选择“报表”对象,再单击“数据库”窗体工具栏中的“新建”按钮。
在弹出的“新建报表”窗体中选择“自动创建报表:纵栏式”,在下面的“请选择该对象数据的来源表或查询”下拉列表框中选择“学生”表,如图5-10所示。
图5-10 “新建报表”对话框
单击“确定”按钮,则自动生成一个报表,如图5-11 所示。
图5-11 生成的报表
选择“文件”菜单中的“保存”命令,命名并保存该报表。
除了自己创建报表外,用户还可以将已创建好的表、查询或窗体转换为报表。
【例5-2】 将已创建好的“学生”窗体转换为“学生”报表。
在“窗体”对象中选择“学生”,单击鼠标右键,执行快捷菜单中的“另存为”命令,如图5-12所示。
图5-12 窗体“另存为”报表
打开“另存为”对话框,在“将窗体‘学生’另存为:”文本框中输入“学生表(窗体转换为报表)”,在“保存类型”下拉列表框中选择“报表”选项,如图5-13 所示。单击“确定”按钮,在“报表”对象中可看到新建的“学生表(窗体转换为报表)”报表。
图5-13 “另存为”对话框
请注意
创建“自动报表”,可以先选择已有的表或查询,执行菜单“插入”➝“自动报表”命令,也可以单击工具栏上“新对象”快捷菜单下的“自动报表”命令打开“自动报表”。
5.2.2 使用“报表向导”创建报表
学习提示
【应用】使用“报表向导”功能创建报表
Access为用户提供了方便的向导功能,用户可以选择已有的数据源来创建所需报表,不仅可以从单一表中创建,还可以从多个表或查询中创建。
【例5-3】 使用向导创建纵栏式“学生”报表。
打开“学生管理”数据库“报表”对象,双击“使用向导创建报表”,如图5-14所示。
图5-14 报表窗口
在“报表向导”对话框的“表/查询”下拉框中选择“表:学生”,并选定其中所需字段,单击“下一步”按钮,如图5-15所示。
图5-15 “报表向导”对话框1
弹出图5-16所示的对话框,询问是否需要添加分组级别,本例中不添加。单击“下一步”按钮。
图5-16 “报表向导”对话框2
在图5-17 所示的对话框中设置排序次序,单击“下一步”按钮。
图5-17 “报表向导”对话框3
在图5-18 所示的对话框中选择“纵栏表”单选按钮,单击“下一步”按钮。
图5-18 “报表向导”对话框4
在图5-19 所示的对话框中选择“大胆”样式,单击“下一步”按钮。
图5-19 “报表向导”对话框5
在图5-20所示的对话框中为报表指定标题“学生使用向导创建”,单击“完成”按钮。
创建好的报表如图5-21所示。
图5-20 “报表向导”对话框6
图5-21 “学生-使用向导创建”报表预览
创建表格式报表与创建纵栏式报表相同,纵栏式报表是按列显示记录的每个字段,字段的标题显示在数据的左侧,而表格式报表则在一行中显示每一条记录的字段。创建表格式报表只需在图5-18所示的对话框中选择“表格”单选按钮,其他操作与创建纵栏式报表完全相同,生成的表格式报表如图5-22所示。
图5-22 表格式报表
请注意
在使用“报表向导”创建报表的过程中,可以通过选择“分组选项”来设置分组间隔属性,分组是将所有记录按某一类别进行分类。在“分组间隔”对话框中,“组级字段”选择以哪个字段来分组,“分组间隔”是按记录值的前几个字母相同对所选组级字段进行分组。
5.2.3 使用“图表向导”创建报表
学习提示
【应用】使用“图表向导”创建报表
使用“图表向导”创建报表,可以将Access中的数据以图表形式显示出来。
【例5-4】 使用“图表向导”创建“学生成绩图表”报表。
执行菜单“插入”➝“报表”命令,打开“新建报表”对话框。选择“图表向导”选项,在下方的“请选择该对象数据的来源表或查询”下拉列表框中选择“成绩”表,单击“确定”按钮。
打开“图表向导”对话框1,如图5-23 所示,在“可用字段”下双击“学号”和“成绩”字段,添加到右侧列表框中,单击“下一步”按钮。
图5-23 “图表向导”对话框1
进入“图表向导”对话框2,如图5-24 所示,选择第1个柱形图,单击“下一步”按钮。
图5-24 “图表向导”对话框2
进入“图表向导”对话框3,如图5-25 所示。直接单击“下一步”按钮。
图5-25 “图表向导”对话框3
进入“图表向导”对话框4,在“请指定图表的标题”文本框中输入“成绩 图表”,如图5-26 所示。单击“完成”按钮。
图5-26 “图表向导”对话框4
单击工具栏上的“打印预览”按钮,生成的图表如图5-27所示,将报表保存为“学生成绩图表”。
图5-27 图表报表
创建好图表报表后,还可以切换到“设计”视图,进行进一步的美化和编辑。
5.2.4 使用“标签向导”创建报表
学习提示
【应用】使用“标签向导”创建报表
“标签向导”主要用于快速制作物品标签、个人基本信息卡片等标签报表。
【例5-5】 使用“标签向导”创建“学生表 标签向导”报表。
执行菜单中的“插入”➝“报表”命令,打开“新建报表”对话框。选择“标签向导”选项,在下方的“请选择该对象数据的来源表或查询”下拉列表框中选择“学生”表,单击“确定”按钮。
打开“标签向导”对话框1,如图5-28 所示。选择“请指定标签尺寸”为“52mm × 70mm”,“度量单位”为“公制”,“标签类型”为“送纸”,单击“下一步”按钮。
图5-28 “标签向导”对话框1
进入“标签向导”对话框2,如图5-29 所示。设置文本外观为默认设置,直接单击“下一步”按钮。
图5-29 “标签向导”对话框2
进入“标签向导”对话框3,在“可用字段”下拉列表框中选择“学号”,单击 按钮,添加到右侧“原型标签”文本框中,按下键盘上的<Enter>键换行。按上述方法,把所有字段都添加到右侧的“原型标签”文本框中,如图5-30所示。单击“下一步”按钮。
图5-30 “标签向导”对话框3
进入“标签向导”对话框4,选择“可用字段”下拉列表框中“学号”字段,单击 按钮,添加到右侧“排序依据”文本框中,如图5-31 所示。单击“下一步”按钮。
图5-31 “标签向导”对话框4
在“请指定报表的名称”文本框中输入“学生表 标签向导”,单击“完成”按钮,生成的报表如图5-32所示。
图5-32 使用“标签向导”生成的报表
如果对生成的报表不满意,可以单击“标签向导”对话框1 中的“自定义”标签按钮,操作步骤如下。
单击“自定义”按钮,进入“新建标签尺寸”对话框,如图5-33所示。
图5-33 “新建标签尺寸”对话框
单击“新建”按钮,进入“新建标签”对话框,可根据需要设置标签属性,如图5-34 所示。单击“确定”按钮,再单击“新建标签尺寸”对话框中的“关闭”按钮,即完成标签设置,此时“标签向导”对话框中“请指定标签尺寸”栏为新建的“student”标签,直接进行“下一步”操作即可。
图5-34 “新建标签”对话框
5.2.5 使用“设计”视图创建报表
学习提示
【掌握】使用“设计”视图创建报表
在Access中,用户可以根据自己的需要自行设计报表样式,以使报表更加符合要求。这就需要在“设计”视图中完成。同时,用户也可以在使用自动报表和向导建立好报表后,在“设计”视图中更改。
【例5-6】 在“设计”视图中创建“学生信息”报表。
在“学生管理”数据库的“报表”对象中单击“新建”按钮,在图5-35所示的“新建报表”对话框中选择“设计视图”,数据源为“学生成绩查询”。
单击图5-35中的“确定”按钮,弹出图5-36所示的“设计”视图。
图5-35 “新建报表”对话框
图5-36 “设计”视图1
如图5-37所示,执行“视图”➝“报表页眉/页脚”命令,在“设计”视图添加报表页眉/页脚,如图5-38所示。
图5-37 添加报表页眉/页脚
图5-38 “设计”视图2
如图5-39所示,选中字段列表中的所有字段,按下鼠标左键,拖动至主体节的适当位置,松开鼠标左键,完成控件添加。
图5-39 “设计”视图3
将主体节中的标签控件移至页面页眉节,调整各个控件的位置、大小;在报表页眉中添加一个标签控件“学生信息”,调整其格式至适当大小,如图5-40所示。
图5-40 “设计”视图4
单击“保存”按钮,命名为“学生信息”报表,切换至“打印预览”视图,如图5-41所示。
图5-41 “打印预览”视图
5.3 编辑报表
编辑报表主要包括设置报表格式、添加背景图案、添加页码、添加时间日期等。
5.3.1 设置报表格式
学习提示
【掌握】设置报表格式
Access数据库自带了“大胆”、“正式”、“淡灰”、“紧凑”、“组织”和“随意”6种预定义报表格式。
设置报表格式的操作步骤如下。
在“设计”视图中打开报表,选择格式更改的对象(可以是整个报表、节区、一个或多个控件),单击“自动套用格式”按钮,在弹出的对话框中选择“淡灰”,如图5-42所示。单击“选项”按钮展开对话框。
图5-42 “自动套用格式”对话框
设置“应用属性”,如图5-43所示。单击“自定义”按钮。
图5-43 展开“自动套用格式”对话框
打开“自定义自动套用格式”对话框,按图5-44所示进行选择。单击“确定”按钮。
图5-44 “自定义自动套用格式”对话框
5.3.2 添加背景图案
为报表添加背景图案可以起到美化作用,也可以增强显示效果。
【例5-7】 为“学生信息”报表添加背景图片。
在设计视图中打开“学生信息”报表。
图5-45中箭头所指为报表选定器,单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,单击“格式”选项卡,设置“图片”属性。
图5-45 报表选定器
单击“图片”旁边的 按钮,选择背景图片。
5.3.3 添加日期和时间
学习提示
【掌握】添加日期和时间
【例5-8】 为“学生信息”报表添加日期和时间。
在“报表”对象“设计”视图中打开“学生信息”报表。
在页面页脚节中添加一个标签,执行“插入”➝“日期和时间”命令。
单击工具栏中的“打印预览”按钮,生成显示日期和时间的报表,如图5-46所示。
图5-46 显示日期和时间的报表
若要在报表中显示日期而不显示时间,则在文本框中输入“ =Date ()”,若显示年则输入“ =year(date())”,显示年月日则输入“ =year(date())&'年'&month(date())&'月'&day(date ())&'日'”,“&”为连接字符串的符号。常用的日期和时间表达式如表5-4所示。
表5-4 日期、时间表达式及显示结果
请注意
在输入日期和时间时,计算表达式必须以“=”开头。
5.3.4 添加分页符和页码
学习提示
【掌握】添加分页符和页码
1.在报表中添加分页符
在报表中插入分页符,表示其后的内容要另起一页显示。
【例5-9】 在“学生信息”报表主体节中插入分页符。
在“设计”视图中打开“学生信息”报表。
单击工具栏中的“分页符”按钮,选择主体节中需设置分页符的位置并单击,分页符以虚线形式出现,如图5-47所示。
图5-47 插入分页符
切换至“打印预览”视图,如图 5-48所示。
图5-48 “打印预览”视图
2.添加页码
【例5-10】 为“学生信息”报表添加页码。
在“设计”视图中打开“学生信息”报表。
在页面页脚节中添加一个标签,执行“插入”➝“页码”命令,在打开的“页码”对话框中添加或修改报表的页码,如图5-49所示。
图5-49 “页码”对话框
单击“确定”按钮,完成添加。
也可用表达式创建页码。Page和Pages是内置变量, [Page]代表当前页号,[Pages]代表总页数。常用的页码格式如表5-5所示。
表5-5 页码常用格式
5.3.5 使用节
前面已经讲过,报表中的内容是以节来划分的。在“设计”视图中,每个节都只能被指定一次,而在打印报表中,某些节可以被指定很多次。通过对属性值相同的记录进行分组,可以简化报表。
1.添加/删除报表页眉、页脚和页面页眉、页脚
用户可以通过执行“视图”➝“报表页眉页脚”或者“视图”➝“页面页眉页脚”命令来添加和删除页眉页脚。它只能成对添加/删除,但能够通过设置节的“可见性”为“否”隐藏不需要显示的节。或者删除该节的所有控件,然后将其大小设置为零,或将其“高度”属性设为0,如果删除页眉和页脚,Access将同时删除页眉、页脚的控件。
2.改变报表的页眉、页脚或其他节的大小
各节的大小可以随意调节,但报表宽度是唯一的,改变节的宽度将导致整个报表宽度的改变。将鼠标指针置于节的底边或右边,上下拖动鼠标就可以改变节的大小,也可以将鼠标指针放在节的右下角,沿对角线方向拖动鼠标,同时改变高度和宽度。
3.为报表中的节或者控件创建自定义颜色
通过设置属性表中的“前景颜色”、“背景颜色”、“边框颜色”等,可以为报表中的节或者控件创建自定义颜色。
5.3.6 绘制线条和矩形
在报表设计中,用户可以添加一些线条或矩形来进行修饰,达到美化界面的效果。
1.在报表上绘制线条
使用“设计”视图打开报表,单击工具箱中的“线条”工具。
单击报表的任意处,可以创建默认大小的线条,或通过单击并拖动的方式创建自定大小的线条。利用“格式”工具栏中的“线条/边框宽度”按钮和“属性”按钮,可以分别更改线条样式(点、点画线等)和边框样式。
2.在报表上绘制矩形
使用“设计”视图打开报表,单击工具箱中的“矩形”工具。
单击窗体或报表的任意处可以创建默认大小的矩形,或通过拖动方式创建自定义大小的矩形。利用“格式”工具栏中的“线条/边框宽度”按钮和“属性”按钮,可以分别更改线条样式(实线、虚线和点画线)和边框样式。
5.4 报表的排序和分组
在默认情况下,报表中的记录是按数据输入先后顺序来显示的。但有时候需要按某种顺序来排列记录,或者按照某个字段进行分组统计,这就是本节要介绍的报表的排序和分组。排序是将记录按照一定的规则进行排序,分组是将具有相同类型的记录排列在一起,并且可以对同组数据进行计算和汇总。
5.4.1 记录排序
学习提示
【掌握】记录排序
默认设置下,报表是按数据输入的顺序排列显示的。在Access中,用户可以按照一定规则对其中的报表数据进行排序。报表不仅能对字段排序,也可以对表达式排序。实际上,一个报表可以安排10个字段或字段表达式进行排序。
【例5-11】 将“学生信息”报表按照成绩从高到低进行排序。
在“设计”视图中打开“学生信息”报表。
单击工具栏上的“排序与分组”按钮 ,打开“排序与分组”对话框,如图5-50 所示,设定排序字段和次序。
图5-50 “排序与分组”对话框
关闭“排序与分组”对话框,在工具栏中选择“打印预览”命令,排序结果如图5-51所示。
图5-51 报表排序结果
5.4.2 记录分组
学习提示
【掌握】报表分组
通过分组,可以实现汇总和输出,增强报表的可读性。
分组属性包括组页眉、组页脚、分组形式、组间距及保持同页5 个属性,组属性描述如表5-6所示。
表5-6 组属性
报表可以按字段的不同数据类型进行分组,如按“文本”、“数字”、“货币”、“日期/时间”等类型进行分组,但不能按“超级链接”或“OLE对象”类型进行分组。字段类型的分组方式如表5-7 所示。
表5-7 分组方式
【例5-12】 将“学生”报表按照“性别”字段进行分组。
在“设计”视图中打开“学生”报表。
单击工具栏上的“排序与分组”按钮,打开“排序与分组”对话框,在“字段/表达式”第1行选择需要划分组的字段,这里选“性别”,在“排序与分组”对话框下面设置组属性,设置“组页眉”属性为“是”,如图5-52所示。
图5-52 设置组属性
此时“学生”报表“设计”视图中出现“性别页眉”节,单击“主体”节“性别”字段文本框,当光标变成手形时,将其拖到“性别页眉”节中,调整文本框位置,如图5-53所示。
图5-53 在报表中设置组页眉属性
关闭“排序与分组”对话框,在工具栏中选择“打印预览”命令,分组结果如图5-54所示。
图5-54 报表分组结果
5.5 使用计算控件
在报表中对分组数据和总体数据进行汇总,可以直接比较各组数据的总体情况,在组页眉或组页脚建立计算文本框、输入计算表达式,对每个组的记录进行汇总。计算表达式常常要使用一些函数,如Count()计数函数、Sum()求和函数、Avg()求平均值函数、Max()求最大值函数、Min()求最小值函数等,函数括号“()”内输入分组汇总的字段。本节将介绍报表的计算与汇总功能。
5.5.1 报表中添加的计算控件
学习提示
【掌握】添加计算控件进行报表计算
计算控件的控件来源是计算表达式。当表达式的值发生变化时,会重新计算结果并输出。文本框是最常用的计算控件。
【例5-13】 在“学生”报表中,根据学生的出生日期计算学生年龄。
在报表“设计”视图中打开“学生”报表。
在“页面页眉”工作区添加标签,输入“年龄”,在“主体”工作区添加文本框控件,打开其“属性”,选择“数据”选项卡,设置“控件源”属性为表达式“ =Year(Date()) -Year([出生年月日])”,如图5-55所示。
图5-55 添加“年龄”显示项
在工具栏中选择“打印预览”命令,生成的报表如图5-56所示。
图5-56 “打印预览”报表
将生成的报表另存为“学生年龄”报表。
5.5.2 报表统计计算
在报表设计中,用户可根据需要进行各类型统计计算,并输出显示,方法就是将计算控件的“控件来源”设置为需要统计计算的表达式。
在Access中,利用计算控件进行统计运算并输出结果,有以下两种形式。
1.在主体节内添加计算控件
在主体节内添加计算控件,对记录的若干字段求和或计算平均值时,只要设置计算控件的“控件来源”为相应字段的运算表达式即可。例如,在报表中列出学生3 门课“计算机实用软件”、“英语”和“高等数学”的成绩,若要计算每位学生3 门课的平均成绩,只要设置新添计算控件的控件来源为“ =([计算机实用软件] +[英语] +[高等数学])/3”即可。
2.组页眉/组页脚节区内或报表页眉/报表页脚节区内添加计算字段
在组页眉/组页脚节区内或报表页眉/报表页脚节区内添加计算字段,对记录的若干字段求和或进行统计计算。这种统计计算一般是对报表字段列的纵向记录数据进行统计,而且要使用Access提供的内置统计函数完成相应的计算操作。例如,要计算上述报表中所有学生“英语”课程的平均分成绩,需要在报表页脚节区内对应“英语”字段列的位置添加一个文本框计算控件,设置控件源属性为“ =Avg( [英语] )”即可。
若是进行分组统计并输出,则统计计算控件应该布置在“组页眉/组页脚”节区内相应的位置,然后使用统计函数设置控件源即可。
【例5-14】 在“学生成绩”报表中计算学生的平均值。
在报表“设计”视图中打开“学生成绩”报表。
在报表页脚节区中添加文本框,在文本标签中输入“平均成绩”,在文本框中输入“ =Avg([成绩] )”,如图5-57所示。
图5-57 设置“平均成绩”文本框
将生成的报表另存为“学生平均成绩”报表。
在工具栏中选择“打印预览”命令,生成的报表如图5-58所示。
图5-58 预览报表
5.5.3 报表常用函数
报表设计中,常用的函数有统计计算类函数、日期类函数等,主要函数的功能如表5-8所示。
表5-8 报表中的常用函数
5.6 创建子报表
子报表是包含在其他报表中的报表。合并报表时,两个报表中的一个必须是主报表,主报表可以是绑定的也可以是非绑定的,即报表可基于数据表、查询或SQL语句,也可不基于其他数据对象。非绑定的主报表可作为容纳要合并的无关联子报表的“容器”。
主报表可以包含子报表,也可以包含子窗体,而且能够包含多个子窗体和子报表。
在子报表和子窗体中,还可以包含子报表或子窗体。但是,一个主报表最多只包含两级子窗体或子报表。例如,某个报表可包含一个子报表,这个子报表还可以包含子窗体或子报表。
表5-9说明了在一个主报表中可能有的子窗体和子报表的组合。
表5-9 子报表/ 子窗体层次关系
5.6.1 在已有报表中创建子报表
学习提示
【掌握】创建子报表
在创建子报表之前,要确保主报表和子报表之间已建立了正确的联系。
【例5-15】 向“学生”报表中添加“成绩”子报表。
在“设计”视图中打开“学生”报表,并在主体中的主报表下面预留子报表的位置。
在“设计”视图报表的工具箱中单击“子窗体/子报表”按钮,在报表“主体”节中单击,打开“子报表向导”对话框1,在“请选择将用于子窗体或子报表的数据来源”区域中选择“使用现有的报表和窗体”单选按钮,在下方的下拉列表框中选择“成绩” 窗体,单击“下一步”按钮,如图5-59所示。
进入图5-60所示的对话框,单击“下一步”按钮。
图5-59 “子报表向导”对话框1
图5-60 “子报表向导”对话框2
进入如图5-61所示的对话框,在“请指定子窗体或子报表的名称”文本框中输入“成绩”,单击“完成”按钮。
适当调整子报表窗体的大小位置,单击工具栏中的“打印预览”按钮,创建的子报表如图5-62所示。
图5-61 “子报表向导”对话框3
图5-62 创建生成的子报表
执行菜单“文件”➝“另存为”命令,将报表命名为“学生成绩子报表”进行保存。
5.6.2 将已有报表添加到其他已有报表中建立子报表
【例5-16】 将“学生”报表添加到“学生使用向导创建”报表中作为子报表。
在“设计”视图中打开“学生使用向导创建”报表。
按<F11>键切换至数据库窗口,将“学生”报表拖动至“学生使用向导创建”报表主体节。
调整报表格式,切换至“打印预览”视图,如图5-63所示。
图5-63 打印预览
将报表另存为“学生使用向导创建子报表”。
5.6.3 链接主报表和子报表
子报表创建好以后,Access自动将主报表与子报表相链接,用户同时还可以修改已经创建好的链接,其基本步骤如下。
在“设计”视图中打开要修改的报表。
单击选中子报表控件,单击工具栏中的“属性”按钮,在“数据”选项卡中设置链接子字段、主字段。
修改链接子字段、主字段。
5.7 创建多列报表
学习提示
【掌握】创建多列报表
多列报表就是在一个页面中显示两列以上的信息,主要适用于信息量少、宽度较小的记录。多列报表最常用的是标签报表形式。
【例5-17】 创建“课程”报表,使报表以两列格式打印输出。
使用报表向导,以“课程”表为数据源,创建“课程”报表。
在“设计”视图中打开“课程”报表,按图5-64调整布局。
图5-64 “设计”视图
执行“文件”➝“页面设置”命令,在“页面设置”对话框中单击“列”选项卡,在“网格设置”下的“列数”文本框中输入列数,此处设置为2列,单击“确定”按钮,如图5-65所示。
图5-65 页面设置
切换至“打印预览”视图,如图5-66所示。
图5-66 打印预览
5.8 设计复杂报表
设计报表时,正确而灵活地使用“报表属性”、“控件属性”和“节属性”等,可以设计出更加精美丰富的报表。
5.8.1 报表属性
学习提示
【了解】报表属性
单击工具栏中的“属性”按钮,或从“视图”菜单中选择“属性”命令,可以显示“属性”对话框,如图5-67所示。
下面简单介绍报表属性中的几个常用属性。
记录源:将报表与某一数据表或查询绑定起来(为报表设置基表或查询记录源)。
筛选:指定条件,使报表只输出符合条件的记录子集。
打开筛选:可选择“是”或“否”,确定筛选条件是否生效。
例如,要使“学生成绩”报表中只输出不及格学生的成绩,“学生成绩”的报表属性设置如图5-68所示。
图5-67 报表属性窗体
图5-68 在报表属性窗体中设置筛选条件并打开筛选
排序依据:指定报表中记录的排序条件。等同于SQL命令中的Order By子句。
启动排序:可选“是”或“否”,确定排序依据是否生效。
记录锁定:可以设定在生成报表所有页之前,禁止其他用户修改报表所需数据。
页面页眉:控制页标题是否出现在所有的页上。
页面页脚:控制页脚注是否出现在所有的页上。
打开:在“事件”选项卡中。可以指定宏的名称,在“打印”或“打印预览”报表时会执行该宏。也可以选择“表达式生成器”或“代码生成器”,完成相关的代码设计。
关闭:在“事件”选项卡中。可以指定宏的名称,在“打印”或“打印预览”完毕后会执行该宏。也可以选择“表达式生成器”或“代码生成器”,完成相关的代码设计。
5.8.2 节属性
学习提示
【了解】节属性
节属性如图5-69所示,说明如表5-10所示。
图5-69 节属性
表5-10 节属性
课后总复习
一、选择题
1.下列关于报表的叙述中,正确的是( )。
A)报表只能输入数据 B)报表只能输出数据
C)报表可以输入和输出数据 D)报表不能输入和输出数据
2.报表的作用不包括( )。
A)分组数据 B)汇总数据 C)格式化数据 D)输入数据
3.如图所示的是报表设计视图,由此可判断该报表的分组字段是( )。
A)课程名称 B)学分 C)成绩 D)姓名
4.报表的数据源不包括( )。
A)表 B)查询 C) SQL语句 D)窗体
5.要求在页面页脚中显示“第X页,共Y页”,则页脚中的页码“控件来源”应设置为( )。
A) ="第"&[pages] &"页,共"&[page] &"页" B) ="共"&[pages] &"页,第"&[page] &"页"
C) ="第"&[page] &"页,共"&[pages] &"页" D) ="共"&[page] &"页,第"&[pages] &"页"
二、操作题
1.考生文件夹下有一个数据库文件“samp3.mdb”,其中存在已经设计好的表对象“tEmployee”,同时还设计出以“qEmployee”为数据源的报表对象“rEmployee”。请在此基础上按照以下要求补充报表设计。
(1)在报表的报表页眉节区添加一个标签控件,标题为“职员基本信息表”,名称为“bTitle”。
(2)将报表主体节区中名为“tDate”的文本框显示内容设置为“聘用时间”字段值。
(3)在报表的页面页脚区添加一个计算控件,以输出页码。计算控件放置在距上边0.25cm、距左侧12.5cm的位置,名称为“tPage”,规定页码显示格式为“第N页/共M页”。
2.考生文件夹下有一个数据库文件“samp3.mdb”,其中存在已经设计好的表对象“tTeacher”和报表对象“rTeacher”。请在此基础上按照以下要求补充报表设计。
(1)将报表对象“rTeacher”的报表主体节区中名为“性别”的文本框显示内容设置为“性别”字段值,并将文本框名称修改为“tSex”。
(2)在报表对象“rTeacher”的报表页脚节区位置添加一个计算控件,计算并显示教师的平均年龄。计算控件放置在距上边0.3cm、距左侧3.6cm的位置,名称为“tAvg”。
学习效果自评
本章介绍了报表的定义、组成、创建等内容,要求考生理解相关内容,能创建简单的报表,并编辑报表。