Access数据库报表的创建和使用.ppt
6.1 报表概述6.2 创建报表6.3 报表的再设计6.4 排序和分组6.5 子报表,第六章 报表的创建和使用,小节,学习目标:,了解报表的功能与类型;能够使用向导创建报表并对报表进行再设计;能够对报表中的数据进行排序与分组;,6.1 报表概述,6.1.1 报表的功能6.1.2 报表的结构6.1.3 报表的视图6.1.4 报表的类型,返回,6.1.1 报表的功能,报表是Access用来打印数据库信息的对象。它的主要功能就是根据需要将数据库中的有关数据提取出来进行整理、分类、汇总和统计,并以要求的格式打印出来。报表可以打印输出表、查询或窗体中的数据。报表和窗体这两种对象有着本质的区别:报表只能查看数据,而窗体可以改变数据源中的数据。,返回,6.1.2 报表的结构,报表的结构和窗体类似,也由节组成。报表可以包含这些节:主体、报表页眉、报表页脚、页面页眉、页面页脚、组页眉和组页脚。,返回,主体,页面页眉,报表页脚,报表页眉,页面页脚,报表页眉/页脚、页面页眉/页脚都可以通过“视图”菜单选定显示或不显示。而组页眉和组页脚只有在创建分组报表时根据需要显示。一个报表通常包含多页,整个报表只有一个报表页眉和一个报表页脚,通常作为整个报表的封面和封底。每一页由主体、页面页眉和页面页脚组成。组页眉和组页脚数随有无分组和分组的层数多少而定,其名称也随具体分组字段而定。报表中,主体是不可或缺的。绝大多数报表都有页面页眉和页面页脚。简单的报表可以没有报表页眉和报表页脚。不分组的报表没有组页眉和组页脚。,主体是报表的主要组成部分,用来显示报表数据源中的记录。报表页眉是报表的首部,用来显示报表标题、报表徽标、单位或部门名称、日期和说明性文字等信息。报表页脚是报表的尾部,用来显示整个报表的统计数据、日期和说明性文字等信息。页面页眉在每一页的顶部,用来显示列标题、页码、日期等信息。,页面页脚在每一页的底部,用来显示页面摘要、页码、日期和本页汇总数据等信息。组页眉在组的明细部分的最前面,用来显示分组字段等分组信息。组页脚在组的明细部分的最后面,用来显示分组统计数据等分组信息,6.1.3 报表的视图,Access数据库的报表有3种视图:设计视图、打印预览视图和版面预览视图。,返回,“设计”视图,在“数据库”窗口选定某个报表后单击窗口上部的“设计”按钮,就打开了窗体的“设计”视图。“设计”视图用来创建或再设计报表。,“打印预览”视图,“打印预览”视图用来查看将在报表的每一页上显示的数据。在“数据库”窗口选定某个报表后单击窗口上部的“预览”按钮,就打开了报表的“打印预览”视图。,“版面预览”视图,“版面预览”视图用来查看报表的版面设置,其中只包括报表中部分数据,所以运行速度比打印预览要快。单击工具栏中的“视图”按钮可以实现报表的“设计”视图、“打印预览”视图间的直接转换。但要转换为“版面预览”视图则只能单击工具栏中“视图”按钮右侧的下拉箭头后选取.,返回节,6.1.4 报表的类型,在Access中,常用的报表可分为以下几种类型:明细报表;汇总报表;交叉列表报表;图表式报表;标签式报表。,返回节,1、明细报表,2、汇总报表,汇总报表显示报表数据源中相关记录的汇总数据。,图中所显示的报表中只包含按班级汇总的最高分和平均成绩。这个报表是按“班级名称”分组的,在组页眉和页脚部分放置了汇总控件。该报表隐藏了主体部分的控件。,3.交叉表报表,交叉列表报表是基于交叉表查询的报表,其数据的组织形式和交叉表一样。,图中给出的“学生选课交叉列表”报表的数据源是“学生选课交叉表查询”。,4.图表式报表,图表式报表将报表数据源中的数据以图形方式形象直观地表示出来。,上图为学生课程成绩按班级汇总的平均成绩图表。图表中的水平坐标按“课程名称”分类,图表数据是按班级汇总的课程平均成绩。此图表清楚地显示每一个班各门课程成绩的相对好坏。,5.标签式报表,标签式报表就是将报表数据源中少量数据以标签的方式组织在一起。下图就是一个邮政标签实例。,6.2 创建报表,在“数据库”窗口选中报表对象,然后单击“新建”按钮就打开了“新建报表”对话框。,返回,报表只能有一个数据源。如果报表所需的数据存储在多个表上,则必须先创建一个基于多个表的查询,然后再以这个查询为数据源创建报表。一般情况下基于查询创建报表比基于表要好,这样做所返回的数据集会尽可能小,因而性能得到提高。,本节内容,6.2.1 自动创建报表6.2.2 使用报表向导创建报表6.2.3 使用向导创建标签6.2.4 使用向导创建图表报表,6.2.1 自动创建报表,例6-1 以“学生情况”表为数据源建立名为“学生情况表格式1”的报表。,返回节,操作步骤:(1)打开“学生管理”数据库,选报表对象,单击“新建”按钮;(2)在打开的“新建报表”对话框中选择“自动创建报表:表格式”;(3)选定数据源;本题是“学生情况”表;单击“确定”按钮。,6.2.2 使用报表向导创建报表,返回节,报表的特点是数据多、布局要求高,如果完全靠手工设定每一个控件会十分繁杂而枯燥。利用自动报表功能创建报表虽然快捷,但格式单调。使用向导创建报能避免上述两种方法的不足之处,是创建报表最主要的方法。使用向导创建报表,可以通过系统提供的一系列对话框,输入自己的设计思想,依靠系统自动完成报表的设计。如果系统生成的报表不够理想,还可以在“设计”视图中进行再设计。,例6-2 以“班级简况”表为数据源使用向导创建名为“班级简况纵栏表1”的报表,包括所有字段。操作说明:在“报表向导”对话框之三中(下页图)设置排序字段,最多可以按4个字段排序,既可升序也可降序(单击“升序”或“降序”按钮切换);本题设置“班级代号”为唯一的排序字段,以升序排序。,例6-3 分组(下页),例6-3 以“学生情况”表为数据源使用向导创建名为“向导创建学生情况1”的报表,包括所有字段,以“班级代号”为唯一分组字段,布局方式为“分级显示1”。,操作说明:(1)在“报表向导”对话框之二(下页图)中确定是否添加分组级别;如果是多级分组,还可以对分组字段的优先级进行调整;本题就以系统预设的“班级代号”作为唯一的分组字段。,(2)在打开的对话框之三中设置排序字段。(3)在“报表向导”对话框之四(下页图)中设置报表的布局方式;本题在“布局”选项组中选择“分级显示1”选项,其它组取默认设置。,关于使用向导创建报表的几点说明:,(1)例6-2与例6-3最大的不同是:前者没有分组,后者有分组。因此导致了“报表向导”对话框之四中布局的选项不同。在没有分组的情况下,报表可以选择的布局有纵栏表、表格、两端对齐3种。在有分组的情况下,报表可以选择的布局是另外6种。,(2)对话框之二中,按钮和按钮分别用来添加和删除分组字段(双击字段名也行)。上箭头按钮和下箭头按钮用来对分组字段的优先级进行调整。在这个对话框中,单击“分组选项”按钮可以对分组字段的“分组间隔”属性进行设置。“分组间隔”属性会根据分组字段的不同数据类型给出不同的选项。对文本型字段,分组间隔有“普通”、“第一个字母”等选项。“普通”选项表示按整个字段值进行分组。如班级代号有“10101”和“10102”等,如果想按“101”分组,则应选择分组间隔中的“三个首写字母”,如下页图所示。,(3)因为报表所基于的查询可能设定了排序,所以最好在第(2)步的对话框之三中为报表设定排序,用以代替原来的排序。(4)第(2)步的对话框之三中还可以单击“汇总选项”,打开“汇总选项”对话框(下页图)对可汇总的字段选择汇总项。,6.2.3 使用向导创建标签,标签以卡片式的小区域表示一些少量数据,通常用于名片、地址和各种标签。例6-4 以“学生管理”数据库中的“学生情况”表为数据源,建立一个名为“学生情况标签1”的标签式报表。,返回节,操作说明:,(1)在打开的“标签向导”对话框之一(下图)中指定标签型号、尺寸和标签类型;如果系统预设的尺寸都不符合要求,还可以通过“自定义”按钮来自定义标签的尺寸。,在打开的对话框之三(下图)中确定标签的显示内容及布局;标签中的内容可来自左侧的字段值,也可直接添加文字;右侧的“原型标签:”矩形区域好比一个文字编辑器,它反映了标签的显示内容及布局。其中,有的是字段值,无的是直接输入的文字;本题选班级、学号、姓名和家庭所在地4个字段,并直接输入:邮政编码和清华大学等文字;布局如下图所示。,6.2.4 使用向导创建图表报表,例6-5 以“学生管理”数据库中的“学生选课详单查询”为数据源,建立“学生课程平均成绩图表1”的图表报表。具体要求是:(1)图表类型选“三维柱形图”;(2)以“课程名称”为横坐标、“考试成绩”为纵坐标、“班级名称”为数据序列;(3)将纵坐标改为平均考试成绩。,返回节,后有操作说明,操作说明:,(1)在打开的“图表向导”对话框之一(下图)中选择用于图表的字段(最多6个);本题选班级名称、姓名、课程名称、学期成绩。,(2)在打开的对话框之三(下页图)中选择数据在图表中的布局方式;对本题,将“课程名称”拖放到横坐标位置,将“考试成绩”拖放到纵坐标位置,数据序列按“班级名称”排列;双击纵坐标中的“求和考试成绩”,选取“AVG”函数,即得到该图所示的“平均值考试成绩”。,上机实验,实验五 报表的创建与应用(一),6.3 报表的再设计,报表向导虽然可以快速地创建报表,但这样创建的报表一般还不能达到最终的要求,需要进行再设计。报表的再设计在“设计”视图中进行,包括对由向导设计的初始报表作各种修改。报表的“设计”视图与窗体的“设计”视图一样,为报表的再设计提供了一些工具和格式选项。这些工具包括:工具箱、属性窗口、字段列表等。格式选项包括:选择多个控件的方法、网格及对齐网格特性、调整控件大小及对齐控件、控件字体格式调整等。,返回,利用“设计”视图可以向报表添加各种控件、调整控件的大小和位置、对控件进行分组和其它一些设计工作。经过再设计的报表不但美观,而且更加方便实用、功能更强。少量的报表也可直接使用“设计视图”创建,直接使用“设计视图”创建报表和报表的再设计性质相同。,主要内容,6.3.1 报表设计工具6.3.2 使用设计视图创建报表6.3.3 在报表中创建计算字段6.3.4 添加分页符和页码6.3.5 调整报表的外观6.3.6 报表的属性设置,返回,6.3.1 报表设计工具,工具箱、“属性”窗口、字段列表都可以通过单击工具栏中对应的按钮让其显示或隐藏。,返回节,6.3.2 使用设计视图创建报表,虽然可以通过向导或自动功能快速地创建报表,但也可能要利用“设计视图”从空白报表开始设计。利用“设计视图”创建报表有许多技巧,这些技巧对报表的再设计是很有帮助的。下面介绍利用“设计视图”创建报表的基本操作。,返回节,1.选择报表的记录源,报表可以使用与窗体相同类型的记录源:表、查询、SQL语句等。显示明细数据的报表可用选择查询作记录源,只显示汇总数据的报表可用有汇总计算的查询作为记录源。,为报表选择记录源的方法有两种:,(1)在“新建报表”对话框中选定“设计视图”后立即选择绑定到报表的数据源。(2)如果在“新建报表”对话框中没有选择数据源,可以在“设计”视图中打开报表“属性”窗口,在“数据”选项卡的“记录源”属性框中输入或选择数据源。,2.为报表添加控件,为报表添加控件,可以使用字段列表,也可以使用工具箱,操作方法与窗体一样。向报表添加字段时,它的关联标签会同时添加到报表的同一节。如果想创建表格式报表,就需要把关联的标签“剪切”下来,“粘贴”到报表的页面页眉或组页眉中。也可以用节介绍的改变控件“自动标签”属性值的方法实现单独添加字段。这样做可以更方便地手动设计表格式报表。报表设计还可能需要调整报表外观、设置相关属性、设置排序与分组等,其中的大部分操作与窗体设计相同。,6.3.3 在报表中创建计算字段,例6-6:以“选课及成绩”表作数据源,使用报表向导创建“选课及成绩”报表,以“学号”分组,以“课程号”升序排序,并创建计算每人每门课程学期成绩的计算字段:学期成绩。,返回节,操作步骤:,先创建好不包括计算字段的“选课及成绩”报表。然后创建计算字段。(1)将新建的“选课及成绩”报表切换到“设计”视图,在报表的“主体”节中“考试日期”字段的右侧添加一个未绑定文本框;(2)选定未绑定文本框的关联标签(标签中的文字为Text13),选择“编辑剪切”;(3)单击“学号页眉”,再选择“编辑复制”;关联标签已复制到“学号页眉”的左上角;将其移到“考试日期”标签的右侧;并将标签中的文字改为:学期成绩;,操作步骤:,(4)调整未绑定文本框和“学期成绩”标签的大小和位置,和其左侧控件一致;(5)选定未绑定文本框;打开它的“属性”窗口;在“数据”选项卡中的“控件来源”栏输入:=平时成绩*.3+考试成绩*.7;关闭“属性”窗口。,在报表中创建计算字段主要用于对全部记录或分组记录进行汇总。对每一个记录单独进行计算的计算字段一般应放在查询中,报表就以这个查为记录源。这样可以提高报表的运行速度。而且可以在合计函数中使用计算字段的名称。,6.3.4 添加分页符和页码,一份精美的报表,不仅要求报表中的数据安排得当,还要求合理地分页并以恰当的方式显示页码。自动创建或利用向导创建报表时,Access会根据具体的报表内容、页面设置以及报表和节的相关属性的设置决定分页位置,并以某种方式显示页码。分页不应破坏每一页报表的相对完整性和相邻页之间的关系。页码应放在报表的“页面页眉”或“页面页脚”中。需要时可以人为强行分页,也可以更改页码的设置。,返回节,1.添加分页符,利用“工具箱”中“分页符”按钮添加分页符。需要注意的是:如果在节中间设置分页符,应避免拆分控件中的数据;如果在节的起始处或结尾处设置分页,可打开节的“属性”窗口,将“强制分页”属性项设为“节前”、“节后”或“节前和节后”之一。,2.添加页码,利用“插入”菜单中的“页码”命令添加页码。在报表“设计”视图中打开相应报表,选择“插入页码”,打开“页码”对话框(下图);在该对话框中设置页码的格式、位置、对齐方式和首页是否显示页码。,【说明】自动创建报表和使用向导创建报表时,系统会在“页面页脚”自动设置页码。,6.3.5 调整报表的外观,由于报表不但要表达数据间复杂的关系,还要满足人们的各种习惯,因而报表的格式比窗体更复杂、外观比窗体更重要。在报表中对控件位置和大小的调整,精度要求更高。调整窗体中的控件有多种方法。鼠标、“格式”菜单、“格式”工具栏和“属性”窗口都可以用来完成报表的外观调整。,返回节,1.调整网格点,默认情况下,在“设计”视图中打开窗体或报表时,整个背景有许多网格线,水平和竖直间距都是1厘米。打开报表的“属性”窗口,可以看到“格式”选项卡(参见下页图)的“网格线X坐标”和“网格线Y坐标”属性项的默认值都是10。如果在“格式”选项卡的“网格线X坐标”和“网格线Y坐标”属性项分别输入比10小、比1大的整数,则会显示网格点。如果分别输入5和8,则水平方向每厘米有5个网格点,竖直方向每厘米有8个网格点(图6-31)。如果输入的数有一个是1或者10(包括默认的两个10),则网格点将被隐藏。,2.用对齐网格放置控件,用网格点控制控件的位置是一个好方法,操作简便而且直观。可以根据实际需要调整网格点间的距离。用网格点控制控件的位置有两种方法。第1种方法是利用“格式”下拉菜单中“对齐”下级菜单的“对齐网格”选项。第2种方法是利用“格式”下拉菜单中的“对齐网格”选项。这是一个单选项。如果选中它,则在以后向报表或窗体添加控件时,添加的控件的4个角都在网格点上。这种设置对此前已经添加的控件不起作用。但是,移动控件时这种设置都起作用。如果在移动控件的同时按下Ctrl键,能够暂取消这种设置的作用。,【说明】,(1)在“设计”视图中打开报表或窗体,通过是否选定“视图”下拉菜单中的“网格”选项,可以决定显示还是隐藏网格点和网格线。(2)上述两种方法对网格点的设置在下次改变设置前都将起作用,即使关闭该报表或窗体后再打开。(3)只要用介绍的两种方法之一设置了“对齐网格”,无论网格点处于显示状态还是隐藏状态,网格点都在起作用。,6.3.6 报表的属性设置,在报表的设计过程中会经常用“属性”窗口对报表的各个元素,包括控件、节和整个报表,进行属性设置。单击工具栏上的“属性”按钮便可以打开“属性”窗口查看所选元素的属性。双击某元素就在选择该元素的同时打开了它的“属性”窗口。不同元素的属性项不完全相同。报表的大部分属性项与窗体是一样的。对于每一个属性项,当插入点进入该属性域时,“数据库”窗口的任务栏都会显示关于该属性项的简要说明。,返回节,1.报表的属性,为了查看报表的属性,必须先选择报表。选择报表有两种方法:单击“报表选择器”(位于水平标尺和垂直标尺交叉处的灰色按钮)。选择“编辑”菜单中的“选择报表”。,(1)报表的格式属性,报表的格式属性影响报表的外观,它的主要属性项如下:标题:用来设定用户预览报表时在报表的标题栏上显示的文本。页面页眉和页面页脚:用来确定页面页眉和页面页脚中的内容是否要打印出来。宽度:用来确定报表中节的宽度。,(2)报表的数据属性,报表的数据属性用来控制报表的数据来源信息,它的主要属性项如下:记录源:用来指定报表的数据源。过滤器:允许使用一个特定的筛选条件来打开报表。打开过滤器:用于确定是否应用该报表的筛选条件。当这个选项设为“否”的时候,用户不能使用筛选。,2.控件的属性,控件的属性绝大部分在第5章已经介绍过。下面介绍报表中的控件所特有的属性。隐藏重复控件:用来确定是否隐藏报表内主体节的重复数据值。例如,在“学生课程成绩明细表”中将主体节中的“姓名”字段的“隐藏重复控件”属性项设为“是”,则显示和打印报表时每个学生仅在他的第1行显示姓名,以后的各行都隐藏。这样的报表更清晰。,可以扩大和可以缩小:用来确定在打印的时候控件是否会根据需要进行垂直放大和缩小。运行总和:用来确定是否按记录或按组进行总和计算。不:不对记录进行累加;工作组之上:在同一分组级别对记录进行累加,遇到下一个分组级别时停止;全部之上:对整个报表按指定分组级别对各分组都进行累加。,6.4 排序与分组,实际的报表往往要将相同类型的数据集中在一起,并按一定的顺序排列。这就要在报表中对记录进行排序与分组。只有对记录进行了排序与分组,才能对数据进行分类、汇总,这正是报表的最主要的功能。在报表中,排序只影响记录在报表中的次序,分组则用于为报表添加“组页眉”和“组页脚”。,返回,在“设计”视图中打开报表,系统就会显示“报表设计”工具栏。是新增的。单击“排序与分组”按钮会弹出“排序与分组”窗口,用以添加、删除和修改报表中数据的排序方式和分组选项。例6-3的操作步骤表明,使用向导创建报表可以设置记录的分组和排序方式。但是,这样生成的报表只能按一个或几个字段排序,而不能按字段的表达式排序。,如果要实现按字段的表达式排序,就只能在“排序与分组”窗口中设置。已有的排序方式和分组选项也可能需要修改。在“排序与分组”窗口设置或修改报表中记录的排序方式和分组选项非常方便灵活。在“排序与分组”窗口最多可按10个字段(向导中是4个)或表达式进行排序。,主要内容,6.4.1 记录排序6.4.2 记录分组,返回,6.4.1 记录排序,虽然报表的数据源可能是按某些字段排序的,但不一定符合各种报表的要求,而且每个报表都可能对记录的排序有特定的要求。这就需要在报表中设定排序。在报表中设定的排序将覆盖它的数据源给出的排序。例6-7 以“学生选课详单查询”为数据源创建报表“学生课程成绩明细_排序”,包含的字段为班级名称、学号、姓名、课程名称、平时成绩、考试成绩和学期成绩7个字段。要求该报表的记录按“班级代号”、“课程号”、“学号”升序排序。,操作步骤:,使用“报表向导”创建“学生课程成绩明细_排序”报表,在向导中设置数据查看方式为“通过选课及成绩”,但不设置任何排序然后在报表中利用“排序与分组”窗口为记录设置排序:(1)切换到“设计”视图,单击“排序与分组”按钮,或选择“视图排序与分组”,打开“排序与分组”窗口,如下页图所示;,(2)单击“排序与分组”窗口的“字段/表达式”行,再单击右侧的下拉按钮,从弹出的字段列表中选择要排序的字段;对本题,依次选择“班级代号”、“课程号”、“学号”,如上图所示;(3)在报表页眉中添加一标签,标签上的内容是:学生课程成绩明细_排序。,【说明】,(1)上述操作接受了系统默认的“升序”。如果需要,可在“排序次序”的下拉列表中选择“降序”。(2)如果有多项排序,第1行最优先,第2行次之,余类推。(3)“排序与分组”窗口的“字段/表达式”行是可以输入表达式的。(4)本题不考虑分组,在“排序与分组”窗口的“组属性”框全取默认值。,6.4.2 记录分组,一个组是相关记录组成的集合。报表中的记录分组后,相关的记录将集中在一起,还可以为每个组设置要显示的说明文字和汇总数据。这样就提高了报表的可读性和信息的利用率。报表的分组可以嵌套,最多嵌套10层。记录的分组必须建立在排序的基础上。但是,设置了排序的字段不一定按其分组。对记录设置分组就是通过设置排序字段的“组页眉”和/或“组页脚”的属性来实现的。,例6-8 将例6-7中的“学生课程成绩明细_排序”报表复制为“学生课程成绩明细_分组”报表,并在其中添加分组,具体要求是:(1)为报表添加“班级代号”分组,在“班级代号”分组中嵌套“课程号”分组;(2)在“班级代号”和“课程号”组页眉中分别添加“班级名称”和“课程名称”字段及相关文字;(3)在“课程号”组页脚中添加求学期成绩平均值的计算字段。,操作步骤:,(1)在“数据库”窗口的报表对象中,选择“学生课程成绩明细_排序”,单击工具栏中“复制”按钮,再单击工具栏中“粘贴”按钮,在对话框中输入:学生课程成绩明细_分组。(2)在“设计”视图中打开“学生课程成绩明细_分组”报表,并打开“排序与分组”窗口。,操作步骤:,(3)在“排序与分组”窗口中单击“字段/表达式”行中的“班级代号”,通过下拉列表将“组属性”中的“组页眉”和“组页脚”的属性值都改为“是”;此时报表中就添加了两个节:“班级代号页眉”和“班级代号页脚”。(4)参照第(3)步再设置“课程号”分组,此时报表中又添加“课程号页眉”和“课程号页脚”两个节如霞页图所示,这里添加的页眉和页脚就是前面介绍的“组页眉”和“组页脚”。,操作步骤:,操作步骤:,(5)打开“字段列表”窗口,从“字段列表”窗口中拖放“班级名称”字段到“班级代号页眉”中,并将其关联标签文字修改为:班级名称:;再从“字段列表”窗口中拖放“课程名称”字段到“课程号页眉”中,并将其关联标签文字修改为:课程名称:。(6)在“课程号页脚”中添加计算字段,方法为先在“课程号页脚”中添加一非绑定文本框,然后在控件“属性”窗口中的“控件来源”属性框输入:=Avg(学期成绩),最后将其关联标签文字修改为:学期成绩平均值:,如下页图所示。,操作步骤:,(7)将报表页眉中标签上的内容改为:学生课程成绩明细_分组。,操作步骤:,6.4.3 排序与分组属性,“排序与分组”窗口的“组属性”窗格有5个属性项,用来指定分组的具体设置。下面对这5个属性项作简要介绍。组页眉:用于决定所选定的排序字段是否包含页眉。是:添加组页眉;否:不添加组页眉或删除已添加的组页眉。组页脚:和组页眉类似。分组形式:用于决定按什么方式组成新组。每一个值:按整个字段或表达式相同值分组。前缀字符:按组间距指定的前n个字符相同值分组。分组形式因分组字段的数据类型的不同,其设置选项也会不一样。,组间距:用于和“分组形式”属性一起说明分组数据的间距值。如果“分组形式”是“每一个值”,“组间距”必须设置为“1”。如果“分组形式”是“前缀字符”,“组间距”可以是一个正整数。如果将“班级代号”作为排序字段,“分组形式”是“前缀字符”,而“组间距”设为3,那么报表中的数据就会按“班级代号”的前3个字符相同值分组。保持同页:用于决定同组的数据是否打印的同一页上。,6.4.4 组页眉和组页脚属性,组页眉和组页脚的主要属性如下。强制分页:用于决定在该节前后是否强制分页。属性项分无、节前、节后、节前和节后4种选择。重复节:用于指定是否在每一页的顶端重复组页眉。,6.5 子报表,6.5.1 子报表概述6.5.2 创建子报表,实际的数据库中,许多表之间是一对多的关系。利用子窗体可以在窗体中同时显示有一对多关系的两个表中的记录。利用子报表也能做到这一点,主报表中显示“一”端表记录,而子报表则显示与“一”端表当前记录相对应的“多”端表的记录。,返回,6.5.1 子报表概述,子报表是插入到其他报表中的报表。合并报表时必须而且只能有一个报表作为主报表。报表中可以包含子报表,也可以包含子窗体,最多嵌套两层。,6.5.2 创建子报表,创建子报表的方法有两种:(1)在已建好的报表中使用“子窗体/子报表”控件直接创建子报表;(2)将一个已存在的报表作为子报表添加到其 他报表中。如果要将某报表作为子报表添加到主报表中,应确保在添加前已经正确建立了两个报表的数据源间的关系,且主报表的数据源与子报表的数据源是一对多的关系。,1.使用子报表控件创建子报表,例6-9 先以“学生选课详单查询”为数据源创建报表“学生成绩主子式”,该报表包含的字段为班级代号、班级名称、学号和姓名;然后使用“子报表”控件直接创建一个子报表,该子报表列出每个学生所选的课程及成绩,内容包括:课程名称、平时成绩、考试成绩和学期成绩。,操作步骤:,(1)在“设计”视图中打开“学生成绩主子式”报表;(2)单击工具箱中的“子窗体/子报表”按钮,在报表的主体节上单击或拖动以确定子报表放置的位置和大小;,操作步骤:,(3)在系统打开的“子报表向导”对话框之一(如下图所示)中选择“使用现有的表和查询”选项;然后单击“下一步”按钮;,向导之一,操作步骤:,(4)在打开的“子报表向导”对话框之二(右图所示)中选择子报表的数据源和字段;本题选择查询“学生选课详单查询”,并选择“课程名称”、“平时成绩”、“考试成绩”和“学期成绩”4个字段;然后单击“下一步”按钮;,向导之二,操作步骤:,(5)在打开的“子报表向导”对话框之三(左图所示)中确定主报表链接到子报表的字段;本题选择“自行定义”单选按钮,并在“窗体/报表字段”和“子窗体/子报表字段”第一行的下拉列表中都选择“学号”;然后单击“下一步”按钮;,向导之三,操作步骤:,(6)在打开的“子报表向导”对话之四中确定子报表的名称;本题输入:学生课程成绩子报表;然后单击“完成”按钮。这就完成了子报表的添加。,2.将已有报表作为子报表添加到其他报表中,例6-10“学生成绩按班级汇总子报表”作为子报表添加到“班级课程成绩汇总主子式”报表中。,说明:,本题用到的报表和查询如下:(1)“班级课程成绩汇总主子式”报表由例6-2创建的“班级简况纵栏表”报表复制得到。(2)“学生成绩按班级汇总查询”的设计网格如下页图所示。,说明:,(3)“学生成绩按班级汇总子报表”使用“报表向导”创建,“表格”式布局,数据源是“学生成绩按班级汇总查询”,选“课程名称”和“学期成绩平均分”字段。,操作步骤:,(1)在“设计”视图中打开“班级课程成绩汇总主子式”报表;(2)单击工具栏上的“数据库窗口”按钮(或按F11键)切换到“数据库”窗口;(3)将“学生成绩按班级汇总子报表”拖曳到主报表中的主体节中,并调整其位置和大小。,有了上面的两个报表,就可以按以下步骤完成向主报表中添加已有子报表的操作:,本章小节,1、创建报表的主要方法是利用向导创建和自动创建,然后对它进行再设计。2、要知道各种类型报表的特征,掌握它们的创建方法,并能够进行再设计。3、要熟练掌握在报表中创建计算字段。4、掌握报表中数据的排序和分组方法。5、掌握创建子报表的方法。,返回,