报表的创建和使用_第1页
报表的创建和使用_第2页
报表的创建和使用_第3页
报表的创建和使用_第4页
报表的创建和使用_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 报表的创建和使用6.1 报表概述6.2 创建报表6.3 报表的再设计6.4 排序和分组6.5 子报表6.6 报表的打印和预览6.1 报表概述在实际的管理工作中,报表是必不可少的,它能以最常用的表格方式组织数据。报表是Access用来打印数据库信息的对象。它的主要功能就是根据需要将数据库中的有关数据提取出来进行整理、分类、汇总和统计,并以要求的格式打印出来。报表可以打印输出表、查询或窗体中的数据。报表和窗体这两种对象有着本质的区别:报表只能查看数据,而窗体可以改变数据源中的数据。 6.1.1 报表的功能6.1.2 报表的结构报表的结构和窗体类似,也由节组成。报表可以包含这些节:主体、报表

2、页眉、报表页脚、页面页眉、页面页脚、组页眉和组页脚。报表页眉/页脚、页面页眉/页脚都可以通过“视图”菜单选定显示或不显示。而组页眉和组页脚只有在创建分组报表时根据需要显示。一个报表通常包含多页,整个报表只有一个报表页眉和一个报表页脚,通常作为整个报表的封面和封底。6.1.2 报表的结构(续一)每一页由主体、页面页眉和页面页脚组成。组页眉和组页脚数随有无分组和分组的层数多少而定,其名称也随具体分组字段而定。报表中,主体是不可或缺的。绝大多数报表都有页面页眉和页面页脚。简单的报表可以没有报表页眉和报表页脚。不分组的报表没有组页眉和组页脚。Access允许多达10个组页眉和组页脚(它们之间的关系是相

3、互嵌套)。下页图所示的报表(局部)包含5个节。6.1.2 报表的结构(续二)分组是指在报表中将某些具有共性的记录,集中到一起作为一组。按分组字段的不同值将报表分为不同的段落使报表层次清晰、减少重复。这样处理后提高了报表的可读性。 6.1.2 报表的结构(续三)主体是报表的主要组成部分,用来显示报表数据源中的记录。报表页眉是报表的首部,用来显示报表标题、报表徽标、单位或部门名称、日期和说明性文字等信息。报表页脚是报表的尾部,用来显示整个报表的统计数据、日期和说明性文字等信息。页面页眉在每一页的顶部,用来显示列标题、页码、日期等信息。6.1.2 报表的结构(续四)页面页脚在每一页的底部,用来显示页

4、面摘要、页码、日期和本页汇总数据等信息。组页眉在组的明细部分的最前面,用来显示分组字段等分组信息。组页脚在组的明细部分的最后面,用来显示分组统计数据等分组信息。6.1.3 报表的视图Access数据库的报表有3种视图:设计视图、打印预览视图和版面预览视图。在“数据库”窗口选定某个报表后单击窗口上部的“设计”按钮,就打开了窗体的“设计”视图(6.1.2续二图)。在“数据库”窗口选定某个报表后单击窗口上部的“预览”按钮,就打开了报表的“打印预览”视图(下页图)。“设计”视图用来创建或再设计报表。6.1.3 报表的视图(续一)“打印预览”视图用来查看将在报表的每一页上显示的数据。“版面预览”视图用来

5、查看报表的版面设置,其中只包括报表中部分数据,所以运行速度比打印预览要快。6.1.3 报表的视图(续二)单击工具栏中的“视图”按钮可以实现报表的“设计”视图、“打印预览”视图间的直接转换。但要转换为“版面预览”视图则只能单击工具栏中“视图”按钮右侧的下拉箭头后选取,如下图所示。 在默认情况下,当处在报表的“设计”视图时,窗口显示两个工具栏,即“格式(窗体/报表)”工具栏和“报表设计”工具栏。 6.1.4 报表的类型在Access中,常用的报表可分为以下几种类型:明细报表;汇总报表;交叉列表报表;图表式报表;标签式报表。1. 明细报表明细报表显示报表数据源的每条记录的详细信息。下页图就是一个明细

6、报表。6.1.4 报表的类型(续一)6.1.4 报表的类型(续二)2. 汇总报表汇总报表显示报表数据源中相关记录的汇总数据 。下页图所显示的报表中只包含按班级汇总的最高分和平均成绩。这个报表是按“班级名称”分组的,在组页眉和页脚部分放置了汇总控件。该报表隐藏了主体部分的控件。 6.1.4 报表的类型(续三)3. 交叉表报表交叉列表报表是基于交叉表查询的报表,其数据的组织形式和交叉表一样。下页图给出的“学生选课交叉列表”报表的数据源是“学生选课交叉表查询” 。 6.1.4 报表的类型(续四)6.1.4 报表的类型(续五)4. 图表式报表“一幅图胜过千言万语”,用图形显示数据形象直观。图表式报表将

7、报表数据源中的数据以图形方式表示。下页图为学生课程成绩按班级汇总的平均成绩图表。图表中的水平坐标按“课程名称”分类,图表数据是按班级汇总的课程平均成绩。此图表清楚地显示每一个班各门课程成绩的相对好坏。 6.1.4 报表的类型(续六)6.1.4 报表的类型(续七)5. 标签式报表标签式报表就是将报表数据源中少量数据以标签的方式组织在一起。下图就是一个邮政标签实例。6.2 创建报表创建报表有多种方法。在“数据库”窗口选中报表对象,然后单击“新建”按钮就打开了“新建报表”对话框(下图)。该对话框提供了创建报表的6种方法 。6.2 创建报表(续)创建报表和创建窗体同样复杂,所以也基本上是先使用向导创建

8、(或自动创建),然后再对初步设计成的报表进行再设计。报表只能有一个数据源。如果报表所需的数据存储在多个表上,则必须先创建一个基于多个表的查询,然后再以这个查询为数据源创建报表。报表也可以用SQL语句作为数据源。一般情况下基于查询创建报表比基于表要好,这样做所返回的数据集会尽可能小,因而性能得到提高。6.2.1 自动创建报表自动创建报表的方法和自动创建窗体几乎一样,只需选定数据源(自动选取其全部字段),也无法作具体的设置。通过“新建报表”对话框可自动创建纵栏式、表格式两种报表。自动创建的纵栏式、表格式两种报表形式上分别与自动创建的纵栏式、表格式两种窗体相似。自动创建的报表都是自动套用系统定义的“

9、标准”格式或最近使用过的格式。如果要改用其它格式,就在报表的“设计”视图中选择“格式自定套用格式”,然后选定新格式。 6.2.1 自动创建报表(续一)例6-1 以“学生情况”表为数据源建立名为“学生情况表格式”的报表。(演示)下面结合本题说明自动创建报表的操作步骤。(1) 打开“学生管理”数据库,选报表对象,单击“新建”按钮;(2) 在打开的“新建报表”对话框(6.2图)中选择“自动创建报表:表格式”;(3) 选定数据源;本题是“学生情况”表;单击“确定”按钮。6.2.1 自动创建报表(续二)这就完成了新报表的创建。保存报表的方法和保存表、查询一样。本题以“学生情况表格式报表”保存。6.1.2

10、续二图和6.1.3续一图分别是该报表的“设计”视图和“打印预览”视图。自动创建的报表,系统会根据其数据源的字段数量自动安排布局,使报表在默认的页面设置里尽量将所有字段排列整齐。自动创建纵栏式报表的方法和自动创建表格式报表类似,不再赘述。 6.2.2 使用报表向导创建报表报表的特点是数据多、布局要求高,如果完全靠手工设定每一个控件会十分繁复而枯燥。利用自动报表功能创建报表虽然快捷,但格式单调。使用向导创建报能避免上述两种方法的不足之处,是创建报表最主要的方法。使用向导创建报表,可以通过系统提供的一系列对话框,输入自己的设计思想,依靠系统自动完成报表的设计。如果系统生成的报表不够理想,还可以在“设

11、计”视图中进行再设计。6.2.2 (续一)由于向导中对话框的内容很丰富,在下面的两个例题中先介绍基本的操作步骤,细节处在后面说明。例6-2 以“班级简况”表为数据源使用向导创建名为“班级简况纵栏表”的报表,包括所有字段。(演示)操作说明:在“报表向导”对话框之三(下页图)中设置排序字段,最多可以按4个字段排序,既可升序也可降序(单击“升序”或“降序”按钮切换);本题设置“班级代号”为唯一的排序字段,以升序排序。 6.2.2 (续二)6.2.2 (续三)例6-3 以“学生情况”表为数据源使用向导创建名为“向导创建学生情况”的报表,包括所有字段,以“班级代号”为唯一分组字段,布局方式为“分级显示1

12、”。 (演示)下面介绍本题后面的几步操作。(1) 在“报表向导”对话框之二(下页图)中确定是否添加分组级别;如果是多级分组,还可以对分组字段的优先级进行调整;本题就以系统预设的“班级代号”作为唯一的分组字段 。 6.2.2 (续四)6.2.2 (续五)(2) 在打开的对话框之三(6.2.6续二图)中设置排序字段 。(3) 在“报表向导”对话框之四(下页图)中设置报表的布局方式;本题在“布局”选项组中选择“分级显示1”选项,其它组取默认设置 。6.2.2 (续六)6.2.2 (续七)完成后的报表(局部)如下图所示。 6.2.2 (续八)关于使用向导创建报表的几点说明:(1) 例6-2与例6-3最

13、大的不同是:前者没有分组,后者有分组。因此导致了“报表向导”对话框之四中布局的选项不同。在没有分组的情况下,报表可以选择的布局有纵栏表、表格、两端对齐3种。在有分组的情况下,报表可以选择的布局是另外6种。6.2.2 (续九)(2) 对话框之二(6.2.2续四图)中,按钮和按钮分别用来添加和删除分组字段(双击字段名也行)。上箭头按钮和下箭头按钮用来对分组字段的优先级进行调整。在这个对话框中,单击“分组选项”按钮可以对分组字段的“分组间隔”属性进行设置。“分组间隔”属性会根据分组字段的不同数据类型给出不同的选项。对文本型字段,分组间隔有“普通”、“第一个字母”等选项。“普通”选项表示按整个字段值进

14、行分组。如班级代号有“10101”和“10102”等,如果想按“101”分组,则应选择分组间隔中的“三个首写字母”,如下页图所示。 6.2.2 (续十)6.2.2 (续十一)(3) 因为报表所基于的查询可能设定了排序,所以最好在第(2)步的对话框之三中为报表设定排序,用以代替原来的排序。(4) 第(2)步的对话框之三中还可以单击“汇总选项”,打开“汇总选项”对话框(下页图)对可汇总的字段选择汇总项。 6.2.2 (续十二)【说明】在使用向导创建报表的过程中,可以随时单击“完成”按钮来迅速创建报表(实质上就是接受以后各窗口的默认选项);也可以单击“上一步”来修改以前的选择。6.2.3 使用向导创

15、建图表报表图表报表以图表形式生动形象地表示数据,很容易理解。带有图形的报表能清晰、明了地反映数据之间的差异。例6-4 以“学生管理”数据库中的“学生选课详单查询”为数据源,建立“学生课程平均成绩图表”的图表报表。具体要求是:(1) 图表类型选“三维柱形图”;(2) 以“课程名称”为横坐标、“考试成绩”为纵坐标、“班级名称”为数据序列;(3) 将纵坐标改为平均考试成绩。 (演示)6.2.3 (续一)下面结合本题说明使用向导创建图表报表的两个问题。(1) 在打开的“图表向导”对话框之一(下页图)中选择用于图表的字段(最多6个);本题选班级名称、姓名、课程名称、学期成绩。(2) 在打开的对话框之三(

16、下下页图)中选择数据在图表中的布局方式;对本题,将“课程名称”拖放到横坐标位置,将“考试成绩”拖放到纵坐标位置,数据序列按“班级名称”排列;双击纵坐标中的“求和考试成绩”,选取“AVG”函数,即得到该图所示的“平均值考试成绩”。6.2.3 (续二)6.2.3 (续三)6.1.4续六图是本题调整了部分格式后显示的效果。 6.2.4 使用向导创建标签标签以卡片式的小区域表示一些少量数据,通常用于名片、地址和各种标签。 例6-5 以“学生管理”数据库中的“学生情况”表为数据源,建立一个名为“学生情况标签”的标签式报表。 (演示)下面结合本题说明使用向导创建标签的两个问题。(1)在打开的“标签向导”对

17、话框之一(下页图)中指定标签型号、尺寸和标签类型;如果系统预设的尺寸都不符合要求,还可以通过“自定义”按钮来自定义标签的尺寸。6.2.4 (续一)6.2.4 (续二)在打开的对话框之三(下页图)中确定标签的显示内容及布局;标签中的内容可来自左侧的字段值,也可直接添加文字;右侧的“原型标签:”矩形区域好比一个文字编辑器,它反映了标签的显示内容及布局。其中,有的是字段值,无的是直接输入的文字;本题选班级、学号、姓名和家庭所在地4个字段,并直接输入:邮政编码和清华大学等文字;布局如下页图所示。 6.2.4 (续三)6.3 报表的再设计报表向导虽然可以快速地创建报表,但这样创建的报表一般还不能达到最终

18、的要求,需要进行再设计。报表的再设计在“设计”视图中进行,包括对由向导设计的初始报表作各种修改。报表的“设计”视图与窗体的“设计”视图一样,为报表的再设计提供了一些工具和格式选项。这些工具包括:工具箱、属性窗口、字段列表等。格式选项包括:选择多个控件的方法、网格及对齐网格特性、调整控件大小及对齐控件、控件字体格式调整等。6.3 报表的再设计(续)利用“设计”视图可以向报表添加各种控件、调整控件的大小和位置、对控件进行分组和其它一些设计工作。经过再设计的报表不但美观,而且更加方便实用、功能更强。少量的报表也可直接使用“设计视图”创建,直接使用“设计视图”创建报表和报表的再设计性质相同。 6.3.

19、1 报表设计工具Access为报表的“设计”视图中提供了各种设计工具,包括工具栏、工具箱、字段列表和“属性”窗口,如下页图所示。工具栏中的绝大多数按钮已在前面章节作了介绍。报表的工具箱、字段列表和窗体的工具箱、字段列表完全相同;报表的“属性”窗口的组织结构、操作方法和窗体的“属性”窗口一样,只是具体属性项不完全相同;这里不再赘述。工具箱、“属性”窗口、字段列表都可以通过单击工具栏中对应的按钮让其显示或隐藏。6.3.1 报表设计工具(续)6.3.2 使用设计视图创建报表虽然可以通过向导或自动功能快速地创建报表,但也可能要利用“设计视图”从空白报表开始设计。利用“设计视图”创建报表有许多技巧,这些

20、技巧对报表的再设计是很有帮助的。下面介绍利用“设计视图”创建报表的基本操作。1. 选择报表的记录源报表可以使用与窗体相同类型的记录源:表、查询、SQL语句等,显示明细数据的报表可用选择查询作记录源,只显示汇总数据的报表可用有汇总计算的查询作为记录源。6.3.2 (续一)为报表选择记录源的方法有两种:(1) 在“新建报表”对话框中选定“设计视图”后立即选择绑定到报表的数据源。(2) 如果在“新建报表”对话框中没有选择数据源,可以在“设计”视图中打开报表“属性”窗口,在“数据”选项卡的“记录源”属性框中输入或选择数据源。如下页图所示。6.3.2 (续二)2. 为报表添加控件为报表添加控件,可以使用

21、字段列表,也可以使用工具箱,操作方法与窗体一样。6.3.2 (续三)向报表添加字段时,它的关联标签会同时添加到报表的同一节。如果想创建表格式报表,就需要把关联的标签“剪切”下来,“粘贴”到报表的页面页眉或组页眉中。也可以用5.3.3节介绍的改变控件“自动标签”属性值的方法实现单独添加字段。这样做可以更方便地手动设计表格式报表。报表设计还可能需要调整报表外观、设置相关属性、设置排序与分组等,其中的大部分操作与窗体设计相同,不再赘述。以下介绍报表中使用较多或报表特有的操作和属性。6.3.3 在报表中创建字段4.3.2节介绍了在查询中创建计算字段的方法。查询中的计算字段只能依赖同一个记录的字段值。但

22、是,在报表中创建的计算字段既可以仅依赖同一个记录的字段值,也可以是多个记录的同类数据的汇总。因此,在报表中创建计算字段应考虑将其放在恰当位置。如果是对每一个记录单独进行计算,和所有绑定字段一样,计算字段的绑定文本框应放在“主体”节,而关联标签应放在“组页眉”节。6.3.3 (续一)如果是对所有记录进行汇总,计算字段的绑定文本框应和关联标签都应放在“报表页脚”或“报表页眉”节。如果是对分组记录进行汇总,计算字段的绑定文本框应和关联标签都应放在“组页脚”或“组页眉”节。在用向导创建报表时,如果在“汇总选项”中设定了汇总内容,则向导通常会在“组页眉”或“组页脚”节中放置对组汇总的计算字段,在“报表页

23、眉”或“报表页脚”节中放置对报表数据源的所有记录汇总的计算字段。6.3.3 (续二)在报表中创建对每一个记录单独进行计算的计算字段的方法是:可先创建一个未绑定控件,然后打开该控件的“属性”窗口,在“数据”选项卡中的“控件来源”栏输入表达式。例6-6 以“选课及成绩”表作数据源,使用报表向导创建“选课及成绩”报表,以“学号”分组,以“课程号”升序排序,并创建计算每人每门课程学期成绩的计算字段:学期成绩。 (演示)先创建好不包括计算字段的“选课及成绩”报表。下面介绍创建计算字段的步骤。6.3.3 (续三)(1) 将新建的“选课及成绩”报表切换到“设计”视图,在报表的“主体”节中“考试日期”字段的右

24、侧添加一个未绑定文本框;(2) 选定未绑定文本框的关联标签(标签中的文字为Text13),选择“编辑剪切”;(3) 单击“学号页眉”,再选择“编辑复制”;关联标签已复制到“学号页眉”的左上角;将其移到“考试日期”标签的右侧;并将标签中的文字改为:学期成绩;6.3.3 (续四)(4) 使用5.4.1介绍的方法调整未绑定文本框和“学期成绩”标签的大小和位置,和其左侧控件一致;(5) 选定未绑定文本框;打开它的“属性”窗口;在“数据”选项卡中的“控件来源”栏输入:=平时成绩*.3+考试成绩*.7(下图);关闭“属性”窗口。 6.3.3 (续五)这就在报表中创建好了计算字段。下图是该报表的“打印预览”

25、视图(局部)。 6.3.3 (续六)在报表中创建计算字段主要用于对全部记录或分组记录进行汇总。对每一个记录单独进行计算的计算字段一般应放在查询中,报表就以这个查为记录源。这样可以提高报表的运行速度。而且可以在合计函数中使用计算字段的名称。创建多记录汇总的计算字段将在6.4.2的例6-7中介绍。 6.3.4 添加分页符和页码一份精美的报表,不仅要求报表中的数据安排得当,还要求合理地分页并以恰当的方式显示页码。自动创建或利用向导创建报表时,Access会根据具体的报表内容、页面设置以及报表和节的相关属性的设置决定分页位置,并以某种方式显示页码。分页不应破坏每一页报表的相对完整性和相邻页之间的关系。

26、页码应放在报表的“页面页眉”或“页面页脚”中。需要时可以人为强行分页,也可以更改页码的设置。6.3.4 添加分页符和页码(续一)1. 添加分页符利用“工具箱”中“分页符”按钮添加分页符。需要注意的是:如果在节中间设置分页符,应避免拆分控件中的数据;如果在节的起始处或结尾处设置分页,可打开页的“属性”窗口,将“强制分页”属性项设为“节前”、“节后”或“节前和节后”之一。6.3.4 添加分页符和页码(续二)2. 添加页码利用“插入”菜单中的“页码”命令添加页码。在报表“设计”视图中打开相应报表,选择“插入页码”,打开“页码”对话框(下图);在该对话框中设置页码的格式、位置、对齐方式和首页是否显示页

27、码。6.3.4 添加分页符和页码(续三)页码的对齐方式分左、中、右、内、外5 种。选择“左”、“中”或“右”则分别在页面的左边、中间或右边放置页码。选择“内”将页码放置在奇数页的左边、偶数页的右边,选择“外”将页码放置在奇数页的右边、偶数页的左边。【说明】自动创建报表和使用向导创建报表时,系统会在“页面页脚”自动设置页码。 6.3.5 调整报表的外观由于报表不但要表达数据间复杂的关系,还要满足人们的各种习惯,因而报表的格式比窗体更复杂、外观比窗体更重要。在报表中对控件位置和大小的调整,精度要求更高。调整窗体中的控件有多种方法。鼠标、“格式”菜单、“格式”工具栏和“属性”窗口都可以用来完成报表的

28、外观调整。具体操作方法参阅5.4节。下面针对调整报表外观对常用工具作补充介绍。 6.3.5 调整报表的外观(续一)1. 调整网格点默认情况下,在“设计”视图中打开窗体或报表时,整个背景有许多网格线,水平和竖直间距都是1厘米。打开报表的“设计”视图,可以看到“格式”选项卡(参见下页图)的“网格线X坐标”和“网格线Y坐标”属性项的默认值都是10。如果在“格式”选项卡的“网格线X坐标”和“网格线Y坐标”属性项分别输入比10小、比1大的整数,则会显示网格点。如果分别输入5和8,则水平方向每厘米有5个网格点,竖直方向每厘米有8个网格点(图6-31)。如果输入的数有一个是1或者10(包括默认的两个10),

29、则网格点将被隐藏。6.3.5 调整报表的外观(续二)6.3.5 调整报表的外观(续三)2. 用对齐网格放置控件用网格点控制控件的位置是一个好方法,操作简便而且直观。可以根据实际需要调整网格点间的距离。用网格点控制控件的位置有两种方法。第1种方法是利用“格式”下拉菜单中“对齐”下级菜单的“对齐网格”选项,已经在5.4.1节介绍过。6.3.5 调整报表的外观(续四)第2种方法是利用“格式”下拉菜单中的“对齐网格”选项。这是一个单选项。如果选中它,则在以后向报表或窗体添加控件时,添加的控件的4个角都在网格点上。这种设置对此前已经添加的控件不起作用。但是,移动控件时这种设置都起作用。如果在移动控件的同

30、时按下Ctrl键,能够暂取消这种设置的作用。6.3.5 调整报表的外观(续五)【说明】(1)在“设计”视图中打开报表或窗体,通过是否选定“视图”下拉菜单中的“网格”选项,可以决定显示还是隐藏网格点和网格线。(2)上述两种方法对网格点的设置在下次改变设置前都将起作用,即使关闭该报表或窗体后再打开。(3)只要用介绍的两种方法之一设置了“对齐网格”,无论网格点处于显示状态还是隐藏状态,网格点都在起作用。6.3.6 报表的属性设置在报表的设计过程中会经常用“属性”窗口对报表的各个元素,包括控件、节和整个报表,进行属性设置。单击工具栏上的“属性”按钮便可以打开“属性”窗口查看所选元素的属性。双击某元素就

31、在选择该元素的同时打开了它的“属性”窗口。不同元素的属性项不完全相同。报表的大部分属性项与窗体是一样的。对于每一个属性项,当插入点进入该属性域时,“数据库”窗口的任务栏都会显示关于该属性项的简要说明。6.3.6 报表的属性设置(续一)下面介绍报表及控件所特有的属性,凡是前面各章介绍过的不再介绍。1. 报表的属性为了查看报表的属性,必须先选择报表。选择报表有两种方法: 单击“报表选择器”(位于水平标尺和垂直标尺交叉处的灰色按钮)。 选择“编辑”菜单中的“选择报表”。6.3.6 报表的属性设置(续二)(1) 报表的格式属性报表的格式属性影响报表的外观,它的主要属性项如下:标题:用来设定用户预览报表

32、时在报表的标题栏上显示的文本。页面页眉和页面页脚:用来确定页面页眉和页面页脚中的内容是否要打印出来。组结合方式:用来确定组的结合方式。每页:组按页保持在一起,每列:组按列保持在一起。6.3.6 报表的属性设置(续三)宽度:用来确定报表中节的宽度。 (2) 报表的数据属性报表的数据属性用来控制报表的数据来源信息,它的主要属性项如下:记录源:用来指定报表的数据源。过滤器:允许使用一个特定的筛选条件来打开报表。打开过滤器:用于确定是否应用该报表的筛选条件。当这个选项设为“否”的时候,用户不能使用筛选。6.3.6 报表的属性设置(续四)2. 控件的属性控件的属性绝大部分在第5章已经介绍过。下面介绍报表

33、中的控件所特有的属性。隐藏重复控件:用来确定是否隐藏报表内主体节的重复数据值。例如,在“学生课程成绩明细表”中将主体节中的“姓名”字段的“隐藏重复控件”属性项设为“是”,则显示和打印报表时每个学生仅在他的第1行显示姓名,以后的各行都隐藏(与6.1.4续一图比较)。这样的报表更清晰。6.3.6 报表的属性设置(续五)可以扩大和可以缩小:用来确定在打印的时候控件是否会根据需要进行垂直放大和缩小。运行总和:用来确定是否按记录或按组进行总和计算。不:不对记录进行累加;工作组之上:在同一分组级别对记录进行累加,遇到下一个分组级别时停止;全部之上:对整个报表按指定分组级别对各分组都进行累加。6.4 排序与

34、分组 实际的报表往往要将相同类型的数据集中在一起,并按一定的顺序排列。这就要在报表中对记录进行排序与分组。只有对记录进行了排序与分组,才能对数据进行分类、汇总,这正是报表的最主要的功能。在报表中,排序只影响记录在报表中的次序,分组则用于为报表添加“组页眉”和“组页脚”。6.4 排序与分组(续一) 在“设计”视图中打开报表,系统就会显示“报表设计”工具栏。其中的绝大部分按钮与“窗体设计”工具栏相同,只有“排序与分组”按钮是新增的。单击该按钮会弹出“排序与分组”窗口,用以添加、删除和修改报表中数据的排序方式和分组选项。例6-3的操作步骤表明,使用向导创建报表可以设置记录的分组和排序方式。但是,这样

35、生成的报表只能按一个或几个字段排序,而不能按字段的表达式排序。6.4 排序与分组(续二) 如果要实现按字段的表达式排序,就只能在“排序与分组”窗口中设置。已有的排序方式和分组选项也可能需要修改。在“排序与分组”窗口设置或修改报表中记录的排序方式和分组选项非常方便灵活。在“排序与分组”窗口最多可按10个字段(向导中是4个)或表达式进行排序。 6.4.1 记录排序虽然报表的数据源可能是按某些字段排序的,但不一定符合各种报表的要求,而且每个报表都可能对记录的排序有特定的要求。这就需要在报表中设定排序。在报表中设定的排序将覆盖它的数据源给出的排序。例6-7 以“学生选课详单查询”为数据源创建报表“学生

36、课程成绩明细_排序”,包含的字段为班级名称、学号、姓名、课程名称、平时成绩、考试成绩和学期成绩7个字段。要求该报表的记录按“班级代号”、“课程号”、“学号”升序排序。 (演示)6.4.1 记录排序(续一)先参照例6-2,按题意使用“报表向导”创建“学生课程成绩明细_排序”报表,在向导中设置数据查看方式为“通过选课及成绩”,但不设置任何排序下面结合本题介绍在报表中利用“排序与分组”窗口为记录设置排序方式的操作步骤。(1) 切换到“设计”视图,单击“排序与分组”按钮,或选择“视图排序与分组”,打开“排序与分组”窗口,如下页图所示;6.4.1 记录排序(续二)(2) 单击“排序与分组”窗口的“字段/

37、表达式”行,再单击右侧的下拉按钮,从弹出的字段列表中选择要排序的字段;对本题,依次选择“班级代号”、“课程号”、“学号”,如上图所示;6.4.1 记录排序(续三)(3) 在报表页眉中添加一标签,标签上的内容是:学生课程成绩明细_排序。这就完成了报表的创建。切换到“打印预览”视图,看到的实际效果如下图所示。6.4.1 记录排序(续四)【说明】(1) 上述操作接受了系统默认的“升序”。如果需要,可在“排序次序”的下拉列表中选择“降序”。(2) 如果有多项排序,第1行最优先,第2行次之,余类推。(3) “排序与分组”窗口的“字段/表达式”行是可以输入表达式的。(4) 本题不考虑分组,在“排序与分组”

38、窗口的“组属性”框全取默认值。 6.4.2 记录分组一个组是相关记录组成的集合。报表中的记录分组后,相关的记录将集中在一起,还可以为每个组设置要显示的说明文字和汇总数据。这样就提高了报表的可读性和信息的利用率。报表的分组可以嵌套,最多嵌套10层。记录的分组必须建立在排序的基础上。但是,设置了排序的字段不一定按其分组。对记录设置分组就是通过设置排序字段的“组页眉”和/或“组页脚”的属性来实现的。6.4.2 记录分组(续一)例6-8 将例6-7中的“学生课程成绩明细_排序”报表复制为“学生课程成绩明细_分组”报表,并在其中添加分组,具体要求是:(1) 为报表添加“班级代号”分组,在“班级代号”分组

39、中嵌套“课程号”分组;(2) 在“班级代号” 和“课程号”组页眉中分别添加“班级名称”和“课程名称”字段及相关文字;(3) 在“课程号”组页脚中添加求学期成绩平均值的计算字段。 (演示)6.4.2 记录分组(续二)下面结合本题介绍在报表中为记录设置分组的操作步骤。(1) 在“数据库”窗口的报表对象中,选择“学生课程成绩明细_排序”,单击工具栏中“复制”按钮,再单击工具栏中“粘贴”按钮,在对话框中输入:学生课程成绩明细_分组。(2) 在“设计”视图中打开“学生课程成绩明细_分组”报表,并打开“排序与分组”窗口。6.4.2 记录分组(续三)(3) 在“排序与分组”窗口中单击“字段/表达式”行中的“

40、班级代号”,通过下拉列表将“组属性”中的“组页眉”和“组页脚”的属性值都改为“是”;此时报表中就添加了两个节:“班级代号页眉”和“班级代号页脚”。(4) 参照第(3)步再设置“课程号”分组,此时报表中又添加“课程号页眉”和“课程号页脚”两个节如霞页图所示,这里添加的页眉和页脚就是前面介绍的“组页眉”和“组页脚”。 6.4.2 记录分组(续四)6.4.2 记录分组(续五)(5) 打开“字段列表”窗口,从“字段列表”窗口中拖放“班级名称”字段到“班级代号页眉”中,并将其关联标签文字修改为:班级名称:;再从“字段列表”窗口中拖放“课程名称”字段到“课程号页眉”中,并将其关联标签文字修改为:课程名称:

41、。(6) 在“课程号页脚”中添加计算字段,方法为先在“课程号页脚”中添加一非绑定文本框,然后在控件“属性”窗口中的“控件来源”属性框输入:=Avg(学期成绩),最后将其关联标签文字修改为:学期成绩平均值:,如下页图所示。6.4.2 记录分组(续六)(7) 将报表页眉中标签上的内容改为:学生课程成绩明细_分组。 6.4.2 记录分组(续七)这就完成了报表的分组。切换到“打印预览”视图,看到的实际效果如下图所示。 6.4.2 记录分组(续八)上页图示报表并不是太美观,布局也不符合通常的习惯。可移动某些字段以改善效果。可以删除排序字段和改变排序的优先次序。由于排序的字段可能用来分组,而分组就意味着在

42、报表的“设计”视图中添加“组页眉”和“组页脚”节。因此,删除排序字段的同时要删除相应的“组页眉”和“组页脚”节以及这两个节中的控件。改变排序字段的优先次序的同时要改变可能存在的分组的嵌套关系。所以,删除排序字段和改变排序字段的优先次序要慎重。6.4.2 记录分组(续九)删除排序字段的方法是:选定要删除的字段的行选定器后按Del键。此时系统会弹出提示框,提醒组页眉和组页脚中控件会丢失。调整排序字段的方法是:先单击字段的行选择器,再拖动该行到新位置上。 6.4.3 排序与分组属性“排序与分组”窗口的“组属性”窗格有5个属性项,用来指定分组的具体设置。下面对这5个属性项作简要介绍。组页眉:用于决定所

43、选定的排序字段是否包含页眉。是:添加组页眉;否:不添加组页眉或删除已添加的组页眉。组页脚:和组页眉类似。分组形式:用于决定按什么方式组成新组。每一个值:按整个字段或表达式相同值分组。前缀字符:按组间距指定的前n个字符相同值分组。分组形式因分组字段的数据类型的不同,其设置选项也会不一样。6.4.3 排序与分组属性(续) 组间距:用于和“分组形式”属性一起说明分组数据的间距值。如果“分组形式”是“每一个值”,“组间距”必须设置为“1”。如果“分组形式”是“前缀字符”,“组间距”可以是一个正整数。如果将“班级代号”作为排序字段,“分组形式”是“前缀字符”,而“组间距”设为3,那么报表中的数据就会按“

44、班级代号”的前3个字符相同值分组。保持同页:用于决定同组的数据是否打印的同一页上。6.4.4 排序和分组属性组页眉和组页脚的主要属性如下。强制分页:用于决定在该节前后是否强制分页。属性项分无、节前、节后、节前和节后4种选择。重复节:用于指定是否在每一页的顶端重复组页眉。6.5 子报表实际的数据库中,许多表之间是一对多的关系。利用子窗体可以在窗体中同时显示有一对多关系的两个表中的记录。利用子报表也能做到这一点,主报表中显示“一”端表记录,而子报表则显示与“一”端表当前记录相对应的“多”端表的记录。6.5.1 子报表概述子报表是插入到其他报表中的报表。合并报表时必须而且只能有一个报表作为主报表。报

45、表中可以包含子报表,也可以包含子窗体,最多嵌套两层。主报表可以是绑定型的,也可以是非绑定型的。非绑定型的主报表可作为容纳要合并的无关联子报表的场所,以便把这样的多个子报表结合成一个报表。本书介绍在绑定型主报表中创建子报表的方法。 6.5.2 创建子报表创建子报表的方法有两种:(1) 在已建好的报表中使用“子窗体/子报表”控件直接创建子报表;(2) 将一个已存在的报表作为子报表添加到其他报表中。如果要将某报表作为子报表添加到主报表中,应确保在添加前已经正确建立了两个报表的数据源间的关系,且主报表的数据源与子报表的数据源是一对多的关系。6.5.2 创建子报表(续一)1. 使用子报表控件创建子报表例

46、6-9 先以“学生选课详单查询”为数据源创建报表“学生成绩主子式”,该报表包含的字段为班级代号、班级名称、学号和姓名;然后使用“子报表”控件直接创建一个子报表,该子报表列出每个学生所选的课程及成绩,内容包括:课程名称、平时成绩、考试成绩和学期成绩。(演示)按照例6-2的操作步骤,不难创建不包含子报表的“学生成绩主子式”报表。6.5.2 创建子报表(续二)下面结合本题介绍在已有报表中创建子报表的操作步骤。(1) 在“设计”视图中打开“学生成绩主子式”报表;(2) 单击工具箱中的“子窗体/子报表”按钮,在报表的主体节上单击或拖动以确定子报表放置的位置和大小;(3) 在系统打开的“子报表向导”对话框

47、之一(如下页图所示)中选择“使用现有的表和查询”选项;然后单击“下一步”按钮;6.5.2 创建子报表(续三)6.5.2 创建子报表(续四)6.5.2 创建子报表(续五)(4) 在打开的“子报表向导”对话框之二(上页图所示)中选择子报表的数据源和字段;本题选择查询“学生选课详单查询”,并选择“课程名称”、“平时成绩”、“考试成绩”和“学期成绩”4个字段;然后单击“下一步”按钮;(5) 在打开的“子报表向导”对话框之三(下页图所示)中确定主报表链接到子报表的字段;本题选择“自行定义”单选按钮,并在“窗体/报表字段” 和“子窗体/子报表字段” 第一行的下拉列表中都选择“学号”;然后单击“下一步”按钮

48、;6.5.2 创建子报表(续六)6.5.2 创建子报表(续七)(6) 在打开的“子报表向导”对话之四中确定子报表的名称;本题输入:学生课程成绩子报表;然后单击“完成”按钮。这就完成了子报表的添加。Access在向主报表中添加子报表的同时还将该子报表以独立的报表保存,可以在报表的“设计”视图中对它单独进行再设计。在上述操作步骤完成后单击“视图”中的“预览”按钮可查看报表效果。下页图是本题经过再设计的结果,更符合人们的习惯。6.5.2 创建子报表(续八)6.5.2 创建子报表(续九)2. 将已有报表作为子报表添加到其他报表中 例6-10 “学生成绩按班级汇总子报表”作为子报表添加到“班级课程成绩汇

49、总主子式”报表中。本题用到的报表和查询如下:(1) “班级课程成绩汇总主子式”报表由例6-2创建的“班级简况纵栏表”报表复制得到。(2) “学生成绩按班级汇总查询”的设计网格如下页图所示。(演示)6.5.2 创建子报表(续十)6.5.2 创建子报表(续十一)(3) “学生成绩按班级汇总子报表”使用“报表向导”创建,“表格”式布局,数据源是“学生成绩按班级汇总查询”,选“课程名称”和“学期成绩平均分”字段。为了与主报表协调,创建好报表后删除“报表页眉”和“报表页脚”中的所有控件,并将“页面页眉”中的所有控件移到“报表页眉”中,如下图所示。(演示)6.5.2 创建子报表(续十二)【说明】Microsoft Access 将不打印子报表中的页面页眉和页面页脚,因此,如果将列标题的标签放在子报表的页眉中,则在打印该报表时不会出现这些内容,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论