第第7章章 建立建立Access报表报表本章重点 本章主要介绍报表的基本知识,报表的概念、报表的作用、类型和视图;报表的各种设计和创建方法;在打印报表之前对报表进行排序、分组和计算等各种编辑方法;最后还介绍了一些高级报表的设计技巧,如何创建多列报表和子报表的创建及链接等• 一个完整的数据库系统肯定会有打印输出的功能在传统的数据库系统开发中,数据库的打印功能需要程序员编写复杂的打印程序来实现,打印格式由程序员在设计过程中确定,用户在使用中一般很难修改在Access中,数据库的打印工作通过报表对象来实现,使用报表对象,用户可以简单、轻松地完成复杂的打印工作• 报表实现了传统媒体与现代媒体在信息传递和共享方面的结合,利用报表可以将数据库中的信息传递给无法使用计算机的读者第7章 建立Access报表•7.1 报表的基本知识•7.2 创建报表•7.3 报表的编辑•7.4 高级报表设计•7.5 报表应用实例•7.6 习题 7.1 报表的基本知识• 报表是Access数据库中的对象,是真正面向用户的对象,它是以打印格式展示数据的一种有效方式,报表可以将大量数据进行比较和汇总,并最终能生成数据的打印报表。
•7.1.1 报表的作用• 报表最主要的功能是将表或查询的数据按照设计的方式打印出来因为用户可以控制报表上每个对象的大小和外观,所以报表能按照所需的方式显示信息以方便查看报表的主要作用是比较和汇总数据其中的数据来自表、查询或SQL语句,其他信息存储在报表的设计中•7.1.2 报表的类型• 在Access中,常用的报表包括文字报表、图表报表和标签报表三大类•1.文字报表• 文字报表的主要形式是常用的纵栏式和表格式用户也可以根据需要自行设计纵栏式报表以纵列方式显示同一记录的多个字段(与窗体类似),可以包括汇总数据和图形,在纵栏式报表中可以用多段显示一条记录,也可以同时显示多条记录表格式报表以表格形式打印输出数据,可以对数据进行分组汇总,是报表中较常用的类型•2.图表报表• 图表报表的优点是可以直观地描述数据Access系统提供了图表报表的创建向导•3.标签报表• 标签可以在一页中建立多个大小、样式一致的卡片,大多用于表示产品价格、个人地址、邮件等简短信息Access将其归入报表对象中,并提供了创建向导•7.1.3 报表的视图• 报表有三种视图:设计视图、打印预览和版面预览。
•(1)设计视图在“设计视图”中可以自行设计报表,也可以修改报表的布局•(2)打印预览在“打印预览”中,可以看到报表的打印外观使用“打印预览”工具栏按钮可以以不同的缩放比例对报表进行预览•(3)版面预览在“版面预览”中,可以预览报表的版式在该视图中,报表只显示几个记录作为示例BACK7.2 创建报表• Access中,创建报表的方法和创建窗体类似,有利用向导创建报表、在设计视图中创建报表和自动创建报表一般情况下,都先用“自动创建报表”和“报表向导”创建报表,然后切换到设计视图,对由向导生成的报表进行修改下面通过具体例子来学习几种创建报表的方法•7.2.1 用向导创建报表• 在数据量较多,布局要求较高的情况下,使用“报表向导”可以非常简单地创建常用的报表,从而节省了在设计视图中繁复枯燥的手工设定工作•【例7-1】 利用“报表向导”创建“学习课程”报表,效果如图7-1所示图7-1 “学习课程”报表预览窗口•(1)打开“学籍管理数据库”,并使数据库窗口成为当前活动窗口,然后单击数据库窗口中的“报表”选项卡•(2)双击“使用向导创建报表”列表项,或单击“新建”,在如图7-2所示的对话框中选择“报表向导”。
图7-2 “新建报表”对话框 •系统弹出如图7-3所示的“报表向导”对话框一图7-3 “报表向导”对话框一 •(3)通过单击“表/查询”选择表“学习课程表”为数据的来源,在“可用字段”列表框中选择需要的字段,将其加入到“选定的字段”列表框中单击【下一步】按钮,系统将弹出如图7-4所示的“报表向导”对话框二图7-4 “报表向导”对话框二•(4)通过选择不同的字段,如“学时”,然后单击按钮,添加为一个不同的分组级别,系统将弹出如图7-5所示的“报表向导”对话框三图7-5 “报表向导”对话框三•(5)当报表有多组分组级别时,利用两个优先级按钮,可以调整各个分组级别直接的优先关系,排在最上面的级别最优先单击【分组选项】按钮,出现如图7-6所示的“分组间隔”对话框,为组级字段选定分组间隔后,单击【确定】按钮,系统返回“报表向导”对话框三图7-6 设定分组间隔•(6)单击【下一步】按钮,系统弹出如图7-7所示的“报表向导”对话框四图7-7 “报表向导”对话框四•(7)单击【汇总选项】按钮,出现如图7-8所示的对话框可以选择需要计算的汇总值,然后单击【确定】按钮,系统返回到“报表向导”对话框四。
图7-8 “汇总选项”对话框•(8)设置排序字段的次序,最多可按四个字段对记录进行排序如对“出版时间”进行“降升序”排序单击【下一步】按钮,出现如图7-9所示的“报表向导”对话框五图7-9 “报表向导”对话框五•(9)选择报表的布局和方向,单击【下一步】按钮,系统弹出如图7-10所示的“报表向导”对话框六图7-10 “报表向导”对话框六•(10)选择报表的样式,单击【下一步】按钮,系统弹出如图7-11所示的“报表向导”对话框七图7-11 “报表向导”对话框七•(11)输入标题“学习课程”,如果选择“修改报表设计”,然后单击【完成】按钮,系统进入到如图7-12所示的设计视图,可以调整各个控件的位置切换到版面视图或预览视图得到如图7-1所示的报表图7-12 在设计视图调整控件•7.2.2 用“自动报表”创建报表• 自动创建报表可以选择数据来源和纵栏式版面或表格式版面,可以使用来自于数据来源中的所有字段,并自动应用用户最近使用报表的自动格式这是构造报表最方便快捷的方法例7-2】 用自动创建报表的方法创建“纵栏式学习课程”和“表格式学习课程”,效果如图7-13和7-14所示。
图7-13 纵栏式报表• 首先在“数据库”窗口中选择“报表”对象,在“新建”对话框中选取“自动创建报表:纵栏式”在“请选择该对象数据的来源表或查询:”下拉列表框中,选择“学习课程表”,然后单击【确定】按钮,系统弹出如图7-13所示的报表视图注意:此时系统处于打印预览状态• 若在图7-2中选择“自动创建报表:表格式”,则结果如图7-14所示图7-14 表格式报表•7.2.3 图表向导• 在创建报表时,有时需要用图表的形式直观地描述数据Access提供了使用“图表向导”创建图表形式的报表•【例7-3】 利用图表向导创建如图7-15所示的“清华出版教材”图表报表图7-15 用“图表向导”创建的报表•(1)在“数据库”窗口中选择“报表”对象,在“新建”对话框中选择“自动创建报表:纵栏式”在“请选择该对象数据的来源表或查询:”下拉列表框中,选择“清华出版教材”,然后单击【确定】按钮,系统弹出如图7-16所示的“图表向导”对话框一图7-16 “图表向导”对话框一•(2)选择图表数据所在的字段(最大只能选择六个字段),单击【下一步】按钮,系统弹出如图7-17所示的“图表向导”对话框二。
图7-17 “图表向导”对话框二•(3)选择图表的类型,单击【下一步】按钮,系统弹出如图7-18所示的“图表向导”对话框三图7-18 “图表向导”对话框三•(4)选择图表的布局方式,单击【图表预览】按钮对图表进行预览,如图7-19所示图7-19 示例预览 •(5)关闭示例预览,通过将字段按钮拖放到示例图表中,调整所需显示的图表坐标单击【下一步】按钮,系统弹出如图7-20所示的“图表向导”对话框四•(6)输入标题“清华出版教材”单击【完成】按钮,系统出现如图7-15所示的报表预览•如果对向导生成的报表不十分满意,可以在设计视图中对其进行修改图7-20 “图表向导”对话框四 •7.2.4 标签向导• 标签在商务活动中是一件常见的事物,如果要创建标签式样的报表,可以通过标签向导来创建标签是特殊的Access报表,只要指定标签的数据来源,Access就会字段建立出标签如果标签的格式不符合要求,也可以自行设置标签的样式•【例7-4】 利用标签向导创建“学生标签”,包括姓名、性别、出生日期、系和专业效果如图7-21所示图7-21 标签预览 •(1)在“数据库”窗口中选择“报表”对象,在“新建”对话框中选取“标签向导”。
在“请选择该对象数据的来源表或查询:”下拉列表框中,选择“学时信息表”,然后单击【确定】按钮,系统弹出如图7-22所示的“标签向导”对话框一 图7-22 “标签向导”对话框一 •(2)选择标签型号、尺寸和横标签号,也可以自定义例如,选择标准的Avery J8563型号,单击【下一步】按钮,系统弹出如图7-23所示的“标签向导”对话框二图7-23 “标签向导”对话框二•(3)选择标签报表中文本的字体和颜色,如字号为14,颜色为蓝色单击【下一步】按钮,系统弹出如图7-24所示的“标签向导”对话框三图7-24 “标签向导”对话框三•(4)现在选择在标签上显示的字段“姓名”、“性别”、“出生日期”、“系”和“专业”单击【下一步】按钮,系统弹出如图7-25所示的“标签向导”对话框四图7-25 “标签向导”对话框四•(5)选择作为排序的依据字段单击【下一步】按钮,系统弹出如图7-26所示的“标签向导”对话框五 (6)输入报表的名称单击【完成】按钮,系统显示如图7-21所示的报表预览图7-26 “标签向导”对话框五•7.2.5 在设计视图中设计报表• 利用自动创建报表和报表向导建立的报表,在布局上会有一些缺陷,需要加以修改。
这时,需要将报表由“打印预览”切换到“设计视图”中,进行修改或自行设计• 大多数情况下,是先利用各种向导建立简单的报表,然后再利用设计视图对其进行修改•1.在设计视图中修改报表【例7-5】 利用报表设计视图修改【例7-1】创建的报表“学习课程”,修改效果如图7-27所示图7-27 修改后的“学习课程”报表预览 •(1)在报表的设计视图中打开【例7-1】所建立的“学习课程”报表,如图7-28所示 图7-28 报表的设计视图 • 同窗体一样,报表的设计视图有五个组成部分,称为“节”它们都是用于控制文档的某些特定的部分,分别是:报表页眉、页面页眉、报表主体、页面页脚和报表页脚•(2)修改报表的各种控件方法和在窗体中操作是一样选中需要调整的控件,按〈Shift〉键的同时还可以选择多个控件,当鼠标显示为箭头的形状时,可以对控件的大小进行调整;当鼠标显示为手掌的形状时,可以同时对多个所选控件进行操作;当鼠标显示为握着的手时,可以对一个控件进行操作•(3)打开工具箱,单击“标签”控件,将其放置在报表的右上角,输入文字“第三学期”•(4)修改后,单击工具栏中的“视图”按钮,切换至“打印预览”状态,进行观察,并可在设计视图和预览状态间反复切换,直至得到较为满意的报表,如图7-27所示。
•2.自行设计报表•【例7-6】 在设计视图中自行设计如图7-29所示的报表图7-29 自行设计的报表 •(1)在“数据库”窗口中,双击“在设计视图中创建报表”系统将弹出空白的报表设计视图,如图7-30所示• 最初的报表分为三个部分,页面页眉上是每页的最开头所要显示的文字或数据;主体是报表的主要内容;页面页脚上是每页最后面所要显示的文字或数据图7-30 空白报表设计视图 •(2)单击工具栏中的“属性”按钮,在弹出的“报表”属性对话框的“记录源”下拉列表框中,选择记录来源,如图7-31所示图7-31 在“报表”属性对话框中选择记录源•(3)在“字段”列表中,选择“清华出版社”、“教材名称”、“学时数”、“作者”、“出版时间”和“单价”等字段,将其拖动到报表的设计视图的主体中,如图7-32所示• 与窗体中控件的使用方法类似,在报表设计视图中可以利用工具箱中的工具进行报表设计,可以添加文本框、标签、图像等图7-32 选取字段•(4)在报表“页面页眉”中加入字段标题,并设置字体,如图7-33所示图7-33 在“页面页眉”中加标题•(5)在页脚中插入页码,选中“页面页脚”,如图7-34所示,在菜单栏中选择“插入”中的“页码”选项。
•(6)系统弹出“页码”对话框,选择页码的显示格式,如图7-35所示,单击【确定】按钮保存选项•(7)切换到预览视图,得到报表的显示结果如图7-29所示图7-34 插入“页码” 图7-35 “页码”对话框 BACK7.3 报表的编辑•7.3.1 打印和预览报表•1.页面设置• 在打印前通常会对页面进行设置,以保证打印出来的报表符合自己的要求页面设置是用来设置打印时所使用的打印机型号、纸张大小、页边距、打印方向等选项设置的方法如下:(1)以任何视图方式打开报表2)单击“文件”菜单中的“页面设置”命令,打开如图7-36所示的“页面设置”对话框图7-36 “页面设置”对话框•(3)在“页面设置”对话框中执行设置选项:“边距”选项卡可以设置页边距,并确认是否打印数据;“页”选项卡用来设置打印方向、页面大小和打印机型号;“列”选项卡用于设置报表的列数、列宽和列高,如果列数大于1列,还要设置列的布局•(4)最后单击【确认】按钮• Access 2002将保存窗体和报表页面设置选项的设置值,所以每个窗体或报表的页面设置选项只需设置一次但是表、查询和模块每次打印时都要重新设置页面选项。
•2.预览报表• 预览报表是指在计算机显示屏幕上将要打印的对象以打印时的布局格式显示出来,主要是显示打印页面的版面,这样可以快速查看报表打印结果的页面布局,该页面布局只包括报表上数据的示范预览报表包括预览页面布局和报表数据两种类型•(1)预览报表的页面布局在设计视图中打开要预览的报表,单击“视图”菜单中的“版面预览”命令这时就可以预览报表的页面设置• Access只是使用从基表或通过查询得到的数据来显示报表的版面,所以,它显示的数据与报表的实际数据不符如果要预览报表中的实际数据,应该使用“打印预览”命令,或在“数据库”窗口中单击“预览”命令•(2)在“数据库”窗口中预览报表的数据在“数据库”窗口中,单击“报表”选项卡选择要预览的报表,单击【预览】按钮• 如果已经以设计视图方式打开了要预览的报表,就可以直接用工具栏中的“打印预览”按钮 或“视图”菜单中的“打印预览”命令来预览报表中的数据•3.打印报表• 在设置页面以后,可以按如下方法打印报表• 打开要打印的报表单击“文件”菜单中的“打印”命令,出现如图7-37所示的“打印”对话框。
图7-37 “打印”对话框•在“打印”对话框中进行以下操作:•(1)在“打印机”区域中指定打印机的名称、型号和连接的位置•(2)在“打印范围”区域中,确定要打印的页面•(3)在“份数”区域中,指定要打印的份数和是否需要对其进行归类,即对同一报表的不同页首先打印,打印完一份后再打印下一份•(4)单击【确定】按钮,开始打印•如果直接通过工具栏上的“打印”按钮 ,Access将按照默认的设置打印报表•7.3.2 报表的排序、分组和计算• 将记录数据按照大小排列,就是排序把具有相同属性的记录排列在一起,就是分组计算可以使用表达式生成器,也可以直接手工输入•【例7-7】 用向导建立“学习课程表”报表,包括所有字段按照“出版社”进行分组,并对报表中的“出版日期”按照降序进行排序,效果如图7-38所示图7-38 分组排序后报表的数据视图•(1)利用报表向导创建一个新的“学习课程表”报表,并在设计视图中打开,如图7-39所示图7-39 新建报表的设计视图•(2)单击工具栏上的“排序与分组”按钮 ,弹出如图7-40所示的“排序与分组”对话框一图7-40 “排序与分组”对话框一 •(3)单击“字段/表达式”列中的第一行单元格下三角箭头,从列表中选择“出版社”作为分组字段,并使用升序排列。
在“组属性”中单击“组页眉”右边下三角箭头,从列表中选择“是”在“组页脚”列表中选择“是”,表示要显示分组的首尾区域,如图7-41所示图7-41 “排序与分组”对话框二 •(4)当分组属性的“组页眉”、“组页脚”设为“是”时,报表的布局多出了分组页眉和页脚的部分组页眉是在每一组的开头出现;组页脚在每一组的最后出现,如图7-42所示图7-42 选择分组后的设计视图•(5)将“主体”中“出版社”字段移动到组页眉“出版社页眉”处,即按出版社名称进行分组后的教材数据都会放在一起,如图7-43所示图7-43 按出版社名称进行分组•(6)在“组页脚”的“出版社页脚”中,从工具栏中选择文本框,将其添加到“组页脚”,分别输入“合计”和其表达式,点击右键选择“属性”,弹出如图7-44所示的“属性”对话框图7-44 添加文本框•(7)单击“控件来源”选项右侧的按钮,系统弹出如图7-45所示的“表达式生成器”对话框图7-45 输入表达式•(8)输入表达式“=Sum([单价])”,报表会自动按群组计算小计切换到预览视图,如图7-46所示• 表达式的输入还可以直接在文本框中输入“=Sum([单价])”,效果是一样的。
图7-46 分组后的报表•(9)回到图7-41的“排序与分组”对话框,单击“字段/表达式”列中的第二行单元格右侧下三角箭头,从列表中选择“出版时间”字段,并将其“排序次序”设为“降序”,再关闭“排序与分组”对话框•(10)单击工具栏上的“打印预览”按钮,结果如图7-38所示如果对各个控件的排列不满意,返回到设计视图加以修改• 在报表中最多可按10个字段或表达式读记录进行分组分组时,先按第一个字段或表达式进行分组,然后在此基础上,再按第二个字段或表达式进行分组,以此类推BACK7.4 高级报表设计•7.4.1 创建多列报表• 前面学习的各种报表,每页都只能打印一列,此类报表对于打印单个记录信息量大的报表是合适的但有时由于单个记录信息量较少,不需要很大宽度的报表,为了不造成浪费,节约纸张,可以在一个页面中安排打印两列或多列,这类报表就是多列报表• 要创建多列报表,首先要应用创建一般报表的方法创建报表,然后通过页面设置使所创建的报表为多列•【例7-8】 创建一个两列的“学生信息”报表,如图7-47所示图7-47 两列报表•(1)用向导创建如图7-48所示的单列“学生信息”报表。
图7-48 单列报表 •(2)单击“文件”菜单中的“页面设置”命令,打开如图7-49所示“页面设置”对话框,单击“列”选项卡•(3)在“网格设置”中的“列数”中键入所需的列数“2”,并可以根据需要调整列的宽度和高度在“边距”选项卡中,根据需要调整左、右边距例如,都设置为“10”最后单击【确定】按钮,关闭“页面设置”对话框•(4)预览报表,如图7-47所示 图7-49 “页面设置”对话框 •7.4.2 子报表的创建及链接• 子报表是建立在其他报表中的报表,此时“其他报表”称为主报表可以在已有的报表中创建一个新子报表,也可以通过将一个报表添加到另一个报表来创建报表和子报表主报表和子报表中数据可以有关系,也可以没关系•1.创建子报表•【例7-9】 创建一个“学生”报表,包含“姓名”、“性别”、“系”和“专业”等字段插入子报表,内容为“学习成绩表”的“学期”和“成绩”,如图7-50所示图7-50 带有子报表的报表•(1)利用向导创建如图7-51所示的“学生”报表 图7-51 “学生”报表•(2)在设计视图中,将“页面页脚”由上向下拖动,留出空白版面单击工具栏中的“工具箱”按钮 。
在弹出的工具箱中,确认“控件向导”控件 已按下•(3)单击工具箱中的“子报表/子窗体”按钮 ,在设计视图的空位处单击,即打开报表向导,如图7-52所示的“子报表向导”对话框一图7-52 “子报表向导”对话框一•(4)为子报表选择数据来源“使用现有的表或查询”然后单击【下一步】按钮,系统弹出如图7-53所示的“子报表向导”对话框二图7-53 “子报表向导”对话框二•(5)确定子报表中的数据来源为表“学生成绩表”,选择字段为“学期”、“成绩”,然后单击【下一步】按钮,系统弹出如图7-54所示的对话框三图7-54 “子报表向导”对话框三•(6)确定主报表链接到子报表的字段,即定义主、子报表之间的关系默认为“从列表中选择”,然后单击【下一步】按钮系统弹出如图7-55所示的对话框四 图7-55 “子报表向导”对话框四 •(7)输入子报表名称,完成子报表的创建结果的设计视图如图7-56所示• 切换至预览状态,如图7-50所示图7-56 带有子报表的报表设计视图 •2.链接主报表和子报表• 如果单独创建了主报表和子报表后,Access 2002提供了使用子报表控件的“链接”属性来链接主报表和子报表。
通过直接对接对这些属性的操作将主报表和子报表链接在一起• 如在【例7-9】中,单独创建一个“学生”报表,在单独创建一个学生成绩子报表,通过属性设置,对其进行链接•(1)在设计视图中打开“学生”主报表,在合适的地方加入“子报表”控件,然后单击右键,选择“属性”选项,打开如图7-57所示的对话框,并单击“数据”选项卡•(2)在“源对象”中选择所需表、查询、窗体或报表,在“链接子字段”列表框中,输入子报表中链接字段的名称,并在“链接主字段”列表框中,输入主报表中链接字段的名称如果要输入多个链接字段,字段之间用分号分隔•(3)关闭对话框,完成链接字段的设置图7-57 链接主报表和子报表 BACK7.5 报表应用实例•【例7-10】 在“学籍管理数据库”中,利用报表向导建立一个“学生成绩单”报表,在报表中,以“课程名称”进行分组,并对其进行汇总,显示该课程的考试成绩情况,最后对报表进行版面设置,如图7-58所示图7-58 “学生成绩单”报表•(1)打开“学籍管理数据库”,双击“使用向导创建报表”,选择“学生成绩表”中所需的信息,如图7-59所示图7-59 选择“学生成绩表”中所需字段•(2)单击【下一步】按钮,选择“课程名称”作为分组依据,如图7-60所示。
图7-60 选择分组依据•(3)单击【下一步】按钮,选择字段对记录进行升序或降序排列,如图7-61所示图7-61 选择升序或降序•(4)确定报表的“布局方式”和“所用样式”后,为报表确定标题,单击【完成】按钮,将其切换到版面视图,得到如图7-62所示的报表图7-62 报表的版面视图•(5)切换到设计视图中,选中要修改的字体“学生成绩单”,将其设置为隶书、24号字体,按住〈Shift〉键的同时选择“课程名称”、“成绩”、“姓名”和“专业”等字段,将其设置为宋体、11号字体,如图7-63所示,对报表的版面设计进行修改后,切换到版面视图,观察是否希望的报表,反复修改直至满意为止图7-63 修改报表版面BACK7.6 习题•1.填空题•(1)信息管理的最终目的是要以适当的方式向管理者提供信息,而提供信息的方式有两种:一是___________,二是__________•(2)报表的主要作用是________和________数据•(3)报表的三种视图分别是: 、 和 •2.思考题•(1)报表的功能是什么?•(2)Access报表分哪几类?•(3)如何才能设计出一个漂亮的报表?BACK。