2020/6/121主讲人徐万万张迎新主编2020/6/122第七章报表2020/6/1237.1了解报表报表可以对大量的原始数据进行综合整理,然后将数据分析结果打印成表。报表可以创建邮件标签。报表可以在图表中显示总计。报表可以对数据进行分组并计算总计。2020/6/124一、报表的视图Access为报表对象提供了三种基本视图。用户需要时可以在这三种窗口之间进行切换。报表设计视图:用于设计报表对象的结构、布局、数据的分组与汇总特性的窗口。2020/6/125打印预览视图:用于测试报表对象打印效果的窗口。Access提供的打印预览视图所显示的报表布局和打印内容与实际打印结果是一致的,既所见既所得。版面预览视图:另一种测试报表对象打印效果的窗口。2020/6/126当表中的记录较多的时候,采用打印预览视图来检验报表的布局和功能实现情况会占用很长时间,这样会影响报表设计的工作效率。为了让用户能够预览报表对象的打印效果,又不等待太长的时间,Access为报表对象安排了版面预览视图。唯一的区别是版面预览视图只对数据源中的部分数据进行数据格式化。2020/6/127二、报表的节报表中的信息分布在不同的节中,每一个节都有特定的目的,按顺序依次是:报表页眉、页面页眉、主体、页面页脚、报表页脚,报表是按照节的顺序打印的。2020/6/128报表页眉:只在报表首部显示和打印。可以利用页眉放置公司徽标、报表标题。页面页眉:显示在报表中每一页的最上方,比如显示列标题。主体:包含报表数据的主体。报表记录源中每一条记录都放置在主体节中。如果特殊报表不需要主体节,可以在其属性表中将主体节“高度”属性设置为0。2020/6/129页面页脚:显示在报表中每一页的最下方,显示页面页脚,如页码等。报表页脚:只显示在报表末尾,显示报表总计等内容。2020/6/1210此外,可以在报表的每个组内添加页眉和页脚,从而创建分组报表。组页眉和组页脚(组标头和组注脚)在分组报表中,是报表特有的。组页眉显示在新记录开始的地方。组页脚显示组总计等内容。要创建组页眉和组页脚,在“视图”上单击“排序与分组”命令,选择一个字段,再将组页眉和组页脚的属性设置为“是”。2020/6/1211三、报表和窗体报表和窗体的设计类似,都是在“设计视图”中,通过添加控件、修改控件属性等方法。报表和窗体的记录源可以是表、查询或SQL语句。但是两者也有区别,窗体主要用于制作用户与系统交互的界面,方便用户对数据库的各种操作,而报表主要用于数据的打印输出。2020/6/12127.2创建报表报表的类型:纵栏式报表表格式报表图表报表标签报表创建报表有三种方法使用自动报表使用向导使用设计视图2020/6/1213一、使用“自动报表”创建报表快、简单但占用空间多,信息显示不紧凑2020/6/1214二、使用“向导”创建报表1、使用“报表向导”创建报表。2、使用“图表向导”创建图表报表。如:northwind.mdb中的“各类销售额”3、使用“标签向导”创建标签。如:northwind.mdb中的“客户标签”2020/6/1215三、在设计视图中创建报表1.设定报表的数据来源:表或查询2.更改报表总体外观:报表自身的显示特征和报表各组成部分的属性。3.为报表添加分页符和页码;在报表中,可以在某一节中使用分页控制符来标志需要另起一页的位置。如:northwind中的“概览”报表,将报表标题页和前言信息分别打印在不同的页上。2020/6/1216在报表中添加分页符:(1)在“设计视图”中打开报表;(2)中的“分页符”按钮;(3)单击报表中需要设置分页符的位置,应放置在某个控件下面或上面。在报表中添加页码;(1)在“设计视图”中打开报表;(2)单击“插入”菜单的“页码”;4.打印和预览报表2020/6/12177.3报表排序与分组数据表中记录的排列顺序是按照输入的先后排列的,即按照记录的物理顺序排列。有时,需要将记录按照一定特征排列,这就是排序。用户在输出报表时,需要把相同类属的记录排列在一起,这就是分组。2020/6/1218一、报表排序1、在设计视图中打开报表。2、单击工具栏上的【排序与分组】按钮,或者单击【视图】菜单中的【排序与分组】。3、在“排序与分组”对话框中,在“字段/表达式”列中选择排序字段(最多可以按照10个字段或表达式来排序),在“排序次序”列中选择升序或降序。2020/6/1219二、报表分组利用“报表向导”也可以分组,但是有时不能满足实际需要。在设计分组报表时,关键要设计好两个方面:一是要正确设计分组所依据的字段及组属性,保证报表能正确分组;二是要正确添加“组页眉”和“组页脚”中所包含的控件,保证报表美观且实用。当然,设计报表的确是一个繁琐的工作!2020/6/12201、报表中对记录进行分组:在“设计视图”中打开要分组的报表;单击“视图”菜单的“排序与分组”命令;在“排序与分组”对话框中,选择用于排序的字段;在“排序与分组”对话框下面的组属性中设置分组属性。2020/6/12212、如何设置组属性“组页眉”:“组页脚”:“分组形式”:每一个值前缀字符“组间距”:记录分组的间隔值。1:“分组形式”设为“每一个值”时,必为1其他数值:“分组形式”设为“前缀字符”时,表示字符数。2020/6/1222“保持同页”不(默认值):打印组时,组页眉、主体节及组页脚不在同一页上。所有的组:将组页眉、主体节及组页脚打印在同一页上。用第一个主体:只有在同时可以打印第一条详细记录时才将组页眉打印在页面上。2020/6/12237.4在报表中计算在报表中,经常需要对所有记录或一组记录计算总计或平均值或记数。在报表中,经常需要对所有记录或一组记录计算总计或平均值或记数。2020/6/1224一、在报表中计算总计或平均值1.在“设计”视图中打开报表(或窗体,在窗体上也可以计算总计)。2.单击“工具箱”上的“文本框”控件。3.如果要计算一组记录的总计值或平均值,将“文本框”添加到组页眉或组页脚中。4.如果要所有记录的总计或平均值,将文本框添加报表的页眉或页脚。在“文本框”控件中键入:使用Sum函数计算总计值或使用Avg函数计算平均值的表达式。2020/6/1225计算所有记录总计值或平均值,控件多放置在“报表页眉”或“报表页脚”节中。计算一组记录的总计值或平均值,控件多放置在“组页眉”或“组页脚”节中。所以,首先要对记录进行分组。2020/6/1226二、在报表中计算百分比在适当的节中添加计算百分比的文本框;在文本框中输入计算公式;单击“属性”中的“格式”选项卡,选择“百分比”。2020/6/12277.5高级报表一、子报表子报表是插在其它报表(可以称为主报表)中的报表。子报表是作为对象插入到主报表中,它可以放置在报表的任意一节内,整个子报表将在该节中打印。2020/6/1228主报表可以包含子报表,同样也可以包含子窗体,而且,能够根据需要无限量地包含子窗体和子报表。另外,主报表最多可以包含两级子窗体和子报表。例如,某个报表可以包含一个子报表,这个子报表还可以包含子窗体或子报表。2020/6/12291、子报表的记录源主报表和子报表可以基于完全不同的记录源,此时主报表和子报表之间没有真正的关系。例如:主报表的记录源是“学院”表,而子报表的记录源是“课程”表,这样两个不相关的报表组合成一个单表。2020/6/1230主报表和子报表也可以基于相同的记录源或相关的记录源。如:主报表的记录源是“一对多”关系中“一”方的表,子报表的记录源是“多”方的表。2020/6/12312.子报表的创建创建子报表的方法有两种。利用“子窗体/子报表”控件,在已有的报表中创建子报表;将已有的报表作为子报表添加到其他报表中。2020/6/12323.链接主报表和子报表在插入包含与主报表数据相关信息的子报表时,子报表控件必须与主报表相链接。主子报表的链接可以确保在子报表中显示的记录与在主报表中显示的记录保持正确的对应关系。2020/6/1233二、多列报表多列显示数据,报表中每行放置多个字段,数据紧凑、美观,节省了纸张。2020/6/1234三、交叉报表交叉报表和其他报表的创建方法是一样的,只是交叉报表的记录源是交叉表查询,在页眉中放置行标题和列标题的标签,在“主体”节中放置行标题和列标题的文本框。2020/6/12357.6报表的常规编辑1.在报表中添加背景图片2.在报表中添加日期和时间3.在报表中添加页码4.在报表中添加分页符5.报表的预览和打印6.报表快照