access报表.docx
《access报表.docx》由会员分享,可在线阅读,更多相关《access报表.docx(36页珍藏版)》请在冰豆网上搜索。
access报表
第6章报表
报表是专门为打印而设计的窗体。
不同之处在于窗体可以与用户进行信息交互,而报表没有交互功能。
本章主要介绍报表的一些基本应用操作,如报表的创建、报表的设计及报表的存储和打印等内容。
建立报表和建立窗体的过程基本一样,只是窗体最终显示在屏幕上,而报表还可以打印在纸上。
6.1报表概述
报表是数据库数据输出的一种对象。
建立报表是为了以纸张的形式保存或输出数据。
利用报表可以控制数据内容的大小和外观,排序、汇总相关数据,输出数据到屏幕或打印设备上。
6.1.1报表的定义及分类
1.报表的定义
报表是Access数据库的对象之一,主要作用是比较和汇总数据,显示经过格式化且分组的信息,并可以将它们打印出来。
2.报表的分类
报表主要分为以下4种类型:
纵栏式报表、表格式报表、图表报表和标签报表。
下面分别进行说明。
(1)纵栏式报表
纵栏式报表(也称为窗体报表)一般是在一页的主体节内以垂直方式显示一条或多条记录。
这种报表可以显示一条记录的区域,也可同时显示多条记录的区域,甚至包括合计。
(2)表格式报表
表格式报表以行和列的形式显示记录数据,通常一行显示一条记录、一页显示多行记录。
表格式报表与纵栏式报表不同,字段标题信息不是在每页的主体节内显示,而是在页面页眉显示。
可以在表格式报表中设置分组字段、显示分组统计数据。
(3)图表报表
图表报表是指在报表中使用图表,这种方式可以更直观地表示出数据之间的关系。
不仅美化了报表,而且可使结果一目了然。
(4)标签报表
标签是一种特殊类型的报表。
在实际应用中,经常会用到标签,例如,物品标签、客户标签等。
在上述各种类型报表的设计过程中,根据需要可以在报表页中显示页码、报表日期甚至使用直线或方框等来分隔数据。
此外,报表设计可以同窗体设计一样设置颜色和阴影等外观属性。
6.1.2报表的视图
在Access中,报表操作提供了3种视图:
“设计”视图、“打印预览”视图和“版面预览”视图。
“设计”视图用于创建和编辑报表的结构;“打印预览”视图用于查看报表的页面数据输出形态;“版面预览”视图用于查看报表的版面设置。
3个视图的切换可以通过“报表设计”工具栏中“视图”工具按钮
右侧下拉菜单中的3个按钮:
“设计”视图、“打印预览”视图和“版面预览”视图来进行选择。
6.1.3报表的结构
在报表的“设计”视图中,区段被表示成带状形式,称为“节”。
报表中的信息可以安排在多个节中,每个节在页面上和报表中具有特定的目的并按照预期顺序输出打印。
与窗体的“节”相比,报表区段被分为更多种类的节。
1.报表页眉
在报表的开始处,即报表的第一页打印一次。
用来显示报表的标题、图形或说明性文字,每份报表只有一个报表页眉。
一般来说,报表页眉主要用在封面。
2.页面页眉
页面页眉中的文字或控件一般输出显示在每页的顶端。
通常,它是用来显示数据的列标题。
可以给每个控件文本标题加上特殊的效果,如颜色、字体种类和字体大小等。
一般来说,把报表的标题放在报表页眉中,该标题打印时在第一页的开始位置出现。
如果将标题移动到页面页眉中,则该标题在每一页上都显示。
3.组页眉
根据需要,在报表设计5个基本的“节”区域的基础上,还可以使用“排序与分组”属性来设置“组页眉/组页脚”区域,以实现报表的分组输出和分组统计。
组页眉节主要安排文本框或其它类型控件显示分组字段等数据信息。
可以建立多层次的组页眉及组页脚,但不可分出太多的层(一般不超过3~6层)。
4.主体
打印表或查询中的记录数据,是报表显示数据的主要区域。
根据主体节内字段数据的显示位置,报表又划分为多种类型。
5.组页脚
组页脚节内主要安排文本框或其他类型控件显示分组统计数据。
打印输出时,其数据显示在每组结束位置。
在实际操作中,组页眉和组页脚可以根据需要单独设置使用。
可以从“视图”菜单中选择“排序与分组”选项。
6.页面页脚
一般包含页码或控制项的合计内容,数据显示安排在文本框和其他的一些类型控件中。
在报表每页底部打印页码信息。
7.报表页脚
该节区一般是在所有的主体和组页脚输出完成后才会打印在报表的最后面。
通过在报表页脚区域安排文本框或其他一些类型控件,可以显示整个报表的计算汇总或其他的统计数字信息。
6.2创建及编辑报表
在Access中,可将数据库中的表和查询生成报表,主要提供了3种创建报表的方式:
使用“自动报表”功能、使用向导功能和使用“设计”视图创建。
与窗体创建过程一样,一般可以首先使用“自动报表”或向导功能快速创建报表结构,然后再在“设计”视图环境中对其外观、功能加以“修缮”,这样可以大大提高报表设计的效率。
6.2.1使用报表向导创建报表
1.使用“自动报表”创建报表
“自动报表”功能是一种快速创建报表的方法。
设计时,先选择表或查询作为报表的数据源,然后选择报表类型:
纵栏式或表格式,最后会自动生成报表显示数据源所有字段记录数据。
【例6.1】在JXGL.mdb数据库中使用“自动报表”创建学生信息报表。
在Access中打开数据库文件;在“数据库”窗体中单击“报表”对象,再单击“数据库”窗体工具栏中的“新建”按钮。
在图6.1所示对话框中,选择“自动创建报表”的形式,有纵栏式和表格式两种,这里选择“自动创建报表:
纵栏式”。
在“请选择该对象数据的来源表或查询”框内选择“学生”表。
图6.1自动创建报表对话框
单击“确定”按钮,即自动生成一个报表。
如图6.2所示。
选择“文件”菜单中的“保存”命令,命名存储该报表。
此外,选定一个表或查询对象,可以通过在“插入”菜单中或“数据库”工具栏上选择“自动报表”命令选项直接创建纵栏式显示报表。
这种方法创建出的报表只有主体区。
图6.2纵栏式报表
2.使用“报表向导”创建报表
“报表向导”会提示用户输入相关的数据源、字段和报表版面格式等信息,根据向导提示可以完成大部分报表设计基本操作,加快了创建报表的过程。
【例6.2】以JXGL.mdb数据库文件中已存在的“学生成绩查询表”查询对象为基础,利用向导创建“学生成绩查询报表”。
数据库窗体中单击“报表”对象,在右侧的窗体中双击“使用向导创建报表”选项。
这时屏幕显示“报表向导”对话框,与窗体一样,报表也需要选择一个数据源,数据源可以是表或查询对象。
这里,选择“学生成绩查询”作为数据源,如图6.3所示。
在“可用字段”列表框中列出数据源的所有字段,从“可用字段”列表字段中,选择需要的报表字段,单击按钮
,它就会显示在“选定的字段”列表中。
当用户选择合适的字段后,单击“下一步”按钮。
如图6.4所示,在确定子数据的查看方式后。
然后单击“下一步”按钮。
这时屏幕显示如图6.5所示对话框。
当定义好分组之后,用户可以指定主体记录的排序次序。
单击“汇总选项”按钮,如图6.6所示。
这时屏幕显示“汇总选项”对话框,指定计算汇总值的方式,然后按“确定”按钮。
图6.3报表向导
图6.4确定查看数据方式
图6.5确定是否添加分组级别
图6.6确定汇总及排序信息
单击“下一步”按钮,如图6.7所示。
用户可以选择报表的布局样式。
单击“下一步”按钮,如图6.8所示。
用户选择报表标题的文字样式。
单击“下一步”按钮,这时屏幕显示“报表向导”最后一个对话框,如图6.9所示。
按要求给出报表标题后,单击“完成”按钮。
这样可以得到图6.10由向导设计的初步报表,用户可以使用垂直和水平滚动条来调整预览窗体。
在报表向导设计出的报表基础上,用户还可以做一些修改,以得到一个完善的报表。
图6.7确定布局方式
图6.8确定所用样式
图6.9指定标题
图6.10报表预览
3.使用“图表向导”创建报表
在Access中可以应用“图表向导”将数据以图表形式显示出来。
【例6.3】使用“图表向导”创建图6.14所示“各职称教工人数”图表报表。
在数据库窗口的“报表”对象下,单击“新建”按钮,在“新建报表”的窗体中,选择“图表向导”,并指定具体的数据源,这里,选择“各职称教工人数”作为数据源,并单击“确定”按钮。
这时屏幕显示如图6.11所示的“图表向导”,选择需要的字段数据,然后单击“下一步”按钮。
图6.11选择所需字段
此时显示如图6.12所示,选择图表的类型,这里选择“柱形图”,然后单击“下一步”按钮。
图6.12选择图标类型
此时需要确定布局图表数据的方式,这里以“职称”为横坐标,以“各职称人数”为纵坐标,然后单击“下一步”按钮。
在如图6.13所示对话框中指定图表的标题,这里输入“教工各职称统计表”,然后单击“完成”按钮。
结果如图6.14所示。
如果用户对使用向导生成的图表向导不满意,可以在“设计”视图中对其进行进一步修改和完善。
图6.13指定标题
图6.14报表预览
4.使用“标签向导”创建报表
在日常工作中,可能需要制作“物品”标签之类的标签。
比如超市的商品都必须贴上相关的价格标签。
在Access中,用户可以使用“标签向导”快速地制作标签报表。
【例6.4】制作以图所示标签报表。
操作步骤如下:
在Access数据库中,单击“报表”对象。
单击“新建”按钮。
在“新建报表”对话框中,单击“标签向导”按钮。
选择包含标签数据的数据源,在“新建报表”对话框下面的列表框中,单击右侧的箭头,选择“学生表”作为报表的数据源。
单击“确定”按钮,系统显示“标签向导”对话框,如图6.15所示。
在该对话框中,可以选择标准型号的标签,也可以自定义标签的大小。
可以创建和编辑自己所需的标签格式,然后单击“下一步”按钮。
选择标签中字体的属性,在此可以根据自己的爱好选择适当的字体及字体的大小、粗细和颜色,然后单击“下一步”按钮。
在此对话框中,用户可在“原型标签”中输入需要显示的文字和字段,如图6.16所示,确定输入正确后,单击“下一步”按钮。
图6.15标签向导
图6.16确定标签内容
此对话框要求用户选择“按哪个字段进行排序”,这里选择学生“学号”,然后单击“下一步”按钮。
此对话框要求输入报表的标题,选择默认标题后单击“完成”按钮。
按要求创建了“学生”标签,如图6.17所示。
如果最终的标签报表没有达到预期的效果,可以删除该报表然后重新运行“标签向导”,进行修改。
图6.17标签报表
6.2.2使用报表“设计”视图创建报表
除可以使用自动报表和向导功能创建报表外,Access中还可以从“设计”视图开始从无到有创建一个新报表,主要操作过程有:
创建空白报表并选择数据源;添加页眉页脚;布置控件显示数据、文本和各种统计信息;设置报表排序和分组属性;设置报表和控件外观格式、大小位置和对齐方式等。
1.创建报表
【例6.5】使用“设计”视图来创建如图所示“学生成绩表”表格式报表。
在“数据库”窗体中,选择“报表”对象,单击工具栏上“新建”按钮,显示“新建报表”对话框。
在“新建报表”对话框中选择“设计视图”或者双击“在设计视图中创建报表”,确定后都会打开一个空白报表,如图6.18所示。
图6.18创建空白报表
用鼠标右键单击报表左上角按钮
,从中选择“属性”选项打开报表的“属性”对话框;或单击选项中的属性按钮
。
在如图6.19所示的报表属性对话框中单击“数据”选项卡,设置“记录源”属性为“查询:
学生成绩查询”,并弹出相关字段列表窗口。
图6.19设置报表记录源
从“视图”菜单中选择“报表页眉/页脚”选项,或在报表设计区右键点击弹出快捷菜单,从中选择“报表页眉/页脚”选项,在报表中会添加报表的页眉和页脚节。
在报表页眉节中添加一个标签控件,输入标题为“学生成绩”,并设置标签格式
在字段列表中选择“学号”、“姓名”、“课号”和“成绩”4个字段拖到报表主体节区里。
如图6.20所示。
图6.20选择报表字段
将主体节的标签控件移到页面页眉节区,然后调整各个控件的布局和大小、位置及对齐方式等。
修正报表页面页眉节和主体节的高度,以合适的尺寸容纳其中包含的控件
利用“打印预览”工具查看报表显示,如图6.21所示,然后以“学生成绩表”命名保存报表。
在设计过程中,如果控件版面布局按照纵向布置显示,则会设计出纵栏式报表。
图6.21报表预览
6.2.3在报表中排序和分组
在默认情况下,报表中的记录是按照自然顺序、即数据的输入的先后顺序来排列显示的。
在实际应用过程中,经常需要按照某个指定的顺序来排列记录,例如,按照年龄从小到大排列等,称为报表“排序”操作。
此外,报表设计时还经常需要就某个字段按照其值的相等与否划分成组来进行一些统计操作并输出统计信息,这就是报表的“分组”操作。
(1)记录排序
使用“报表向导”创建报表时,操作到图所示步骤会提示设置报表中的记录排序,这时,最多可以对4个字段进行排序。
“报表向导”中设置字段排序,限制最多一次设置4个字段,并且限制排序只能是字段,不能是表达式。
实际上,一个报表最多可以安排10个字段或字段表达式进行排序。
【例6.6】在“教工信息表”报表设计中按照教师“工作时间”由早到晚进行排序输出。
具体操作步骤如下:
在“设计”视图打开该报表。
单击“视图”菜单中选择“排序与分组”选项或单击工具栏上的“排序与分组”按钮
打开“排序与分组”对话框。
在“排序与分组”对话框中,选择第一排序依据及其排序次序(升序或降序);这里,单击“字段/表达式”列的第一行并选择第一排序字段为“工作时间”,设置“排序次序”列的值为“升序”;如果需要可以在第二行设置第二个排序字段,依此类推设置多个排序字段。
如图6.22所示。
在报表中设置多个排序字段时,先按第一排序字段值排列,第一排列字段值相同的记录再按第二排序字段值去排列,依此类推。
单击工具栏上的“打印预览”按钮,对排序数据进行预览,如图6.23所示。
图6.22排序与分组
图6.23报表预览
(2)记录分组
分组是指报表设计时按选定的某个(或几个)字段值是否相等而将记录划分成组的过程。
操作时,先选定分组字段,在这些字段上字段值相等的记录归为同一组,字段值不等的记录归为不同组。
报表通过分组可以实现同组数据的汇总和显示输出,增加了报表的可读性和信息的利用。
一个报表中最多可以对10个字段或表达式进行分组。
【例6.7】设计图所示报表对学生成绩进行分组统计。
双击“在设计视图中创建报表”。
设置其数据源属性为查询“学生成绩查询”,然后将“学号”、“姓名”、“课程名称”和“成绩”字段拖至报表,设置其标题属性为“学生成绩汇总表”,如图6.24所示。
单击“视图”菜单中选择“排序与分组”选项或单击工具栏上的“排序与分组”按钮,打开“排序与分组”对话框。
在“排序与分组”对话框中,单击“字段与表达式”列的第一行,选择“学号”字段作为分组字段,保留排序次序为“升序”。
在“排序与分组”对话框下部设置分组属性,“组页眉”属性设置为“是”,以显示组页眉节;“组页脚”属性设置为“是”,以显示组页脚节;“分组形式”属性设置为“每一个值”,以“编号”字段的不同值划分组;“组间距”属性设置为“1”,以指定分组的间隔值;“保持同页”属性设置为“不”,以指定打印时组页眉、主体和组页脚不在同页上;若设置为“整个组”,则组页眉、主体和组页脚会打印在同一页上。
此时,“排序与分组”对话框显示状态如图6.25所示。
图6.24报表布局
图6.25设置报表与分组属性
设置完分组属性后,会在报表中添加组页眉和组页脚两个节区,分别用“学号页眉”和“学号页脚”来标识;将主体节内的“学号”和“姓名”两个文本框移至“学号页眉”节,如图6.26所示。
单击工具栏上的“打印预览”按钮,预览上述排序数据,如图6.27所示。
在报表分组操作设置字段“分组形式”属性时,属性值的选择是由分组字段的数据类型决定的。
对已经设置排序的分组的报表,可以进行以下操作:
添加排序、分组字段或表达式,删除排序、分组字段或表达式,更改排序、分组字段或表达式。
图6.26设置报表布局
图6.26报表预览
6.2.4使用计算控件
(1)在报表中添加计算控件
报表设计过程中,除在版面上布置绑定控件直接显示字段数据外,还经常要进行各种运算并将结果显示出来。
例如,报表设计中页码的输出、分组统计数据的输出等均是通过设置绑定控件的控件源为计算表达式形式而实现的,这些控件就称为“计算控件”。
计算控件的控件源是计算表达式,当表达式的值发生变化时,会重新计算结果并输出显示。
文本框是最常用的计算控件。
【例6.8】在“教工表”报表设计中根据教工“出生日期”字段值使用计算控件来计算教工年龄。
使用前述设计方法,设计出以“教工表”为数据源的一个表格式报表,如图6.27所示。
图6.27教工报表
将页面页眉节内的“出生日期”标签标题更改为“年龄”,将主体节内的“出生日期”绑定文本框,打开其“属性”窗体,选择“数据”选项卡,设置“控件源”属性为计算年龄的表达式为“=Year(Date())–Year([出生日期])”,并取消“格式”选项卡中格式的显示方式,如图6.28所示。
图6.28设置计算控件的“控件源”属性
注意:
计算控件的控件来源必须是“=”开头的一个计算表达式。
单击工具栏上的“打印预览”按钮,预览报表中计算控件显示,如图6.29所示。
命名保存报表。
图6.29报表预览
(2)报表统计计算
报表设计中,可以根据需要进行各种类型统计计算并输出显示,操作方法就是使用计算控件设置其控件源为合适的统计计算表达式。
在Access中利用计算控件进行统计计算并输出结果操作主要有两种形式:
主体节内添加计算控件
在主体节内添加计算控件对每条记录的若干字段值进行求和或求平均计算时,只要设置计算控件的控件源为不同字段的计算表达式即可。
例如,当在一个报表中列出学生3门课“计算机实用软件”、“英语”和“高等数据”的成绩时,若要对每位学生计算3门课的平均成绩,只要设置新添计算控件的控件源为“=([计算机实用软件]+[英语]+[高等数据])/3”即可。
这种形式的计算还可以前移到查询设计中,以改善报表操作性能。
若报表数据源为表对象,则可以创建一个选择查询,添加计算字段完成计算;若报表数据源为查询对象,则可以再添加计算字段完成计算。
组页眉/组页脚节区内或报表页眉/报表页脚节区内添加计算字段
在组页眉/组页脚节区内或报表页眉/报表页脚节区内添加计算字段对某些字段的一组记录或所有记录进行求和或求平均统计计算时,这种形式的统计计算一般是对报表字段列的纵向记录数据进行统计,而且要使用Access提供的内置统计函数(Count函数完成计数,Sum函数完成求和,Avg函数完成求平均)来完成相应计算操作。
例如,要计算上述报表中所有学生的“英语”课程的平均分成绩,需要在报表页脚节内对应“英语”字段列的位置添加一个文本框计算控件,设置其控件源属性为“=Avg([英语])”即可。
如果是进行分组统计并输出,则统计计算控件应该布置在“组页眉/组页脚”节区内相应位置,然后使用统计函数设置控件源即可。
6.2.5使用设计器编辑报表
(1)用预定义格式来设置报表的格式
Access提供了6种预定义的报表格式:
大胆、正式、淡灰、紧凑、组织、随意。
使用“自动套用格式”来改变报表的格式,步骤如下:
在“设计”视图中打开要进行格式更改的报表,选定要更改格式的部分,既可以是整个报表,也可以是某个节或控件。
在工具栏上单击“自动套用格式”。
在报表自动套用格式中选定一种所需的格式。
如果要另外指定字体、颜色等属性,可单击“选项”按钮;选择“自定义”按钮,自行定义一种格式。
如图6.30所示的对话框。
图6.30自定义自动套用格式
(2)添加分页符和页码
(1)在报表中添加分布符
在报表中,可以在某一节中使用分页控件控制符来标志要另起一页的位置。
具体操作步骤如下:
在“设计”视图打开报表。
单击工具箱中的“分页符”按钮。
选择报表中需要设置分页符的位置然后单击,分页符会以短虚线标志在报表的左边界上。
注意:
分页符应设置在某个控件之上或之下,以免拆分了控件中的数据。
如果要将报表中的每个记录或记录组都另起一页,可以通过设置组标头、组注脚或主体节的“强制分布”属性来实现。
(2)在报表中添加页码
具体操作步骤如下:
在“设计”视图打开报表。
单击“插入”菜单中的“页码”命令。
在“页码”对话框中,根据需要选择相应的页码格式、位置和对齐方式。
对齐方式有下列选项:
左:
在左页边距添加文本框;
中:
在左右页边距的正中添加文本框;
右:
在右页边距添加文本框;
内:
在左、右边距之间添加文本框,奇数页打印在左侧,而偶数页打印在右侧;
外:
在左、右页边距之间添加文本框,偶数页打印在左侧,奇数页打印在右侧。
如果要在第一页显示页码,选中“在第一页显示页码”复选框。
(3)使用节修改报表的布局
报表中的内容是以节划分的。
每一个节都有其特定的目的,而且按照一定的顺序打印在页面及报表上。
在“设计”视图中,节代表各个不同的带区,每一节只能被指定一次。
在打印报表中,某些节可以批定很多次,可以通过放置控件来确定在节中显示内容的位置。
通过对属性值相等的记录进行分组,可以进行一些计算或简化报表使其易于阅读。
(1)添加或删除报表页眉、页脚和页面页眉、页脚
选择“视图”菜单上的“报表页眉/页脚”命令或“页面页眉/页脚”命令来操作。
页眉和页脚只能作为一对同时添加。
如果不需要页眉或页脚,可以将不要的节的“可见性”属性设为“否”,或者删除该节的所有控件,然后将其大小设置为“0”或将其“高度”属性设置为“0”。
如果删除页眉和页脚,Access将同时删除页眉、页脚中的控件。
(2)改变报表的页眉、页脚或其他节的大小
可以单独改变报表上各个节的大小。
但是,报表只有惟一的宽度,改变一个节的宽度将改变整个报表的宽度。
可以将鼠标放在节的底边(改变高度)或右边(改变宽度)上,上下拖动鼠标改变节的高度,或左右拖动鼠标改变节的宽度。
也可以将鼠标放在节的右下角上,然后沿对角线的方向拖动鼠标,同时改变高度和宽度。
(3)为报表中的节或控件创建自定义颜色
如果调色板中没有需要的颜色,用户可以利用节或控件的属性表中的“前景颜色”(对控件中的文本)、“背景颜色”或“边框颜色”等属性并配合使用“颜色”对话框来进行相应属性的颜色设置。
(4)在报表上绘制线条和矩形
在报表设计中,经常还会通过添加线条或矩形来修饰版面,以达到一个更好的显示效果。
(1)在报表上绘制线条
在报表上绘制线条的具体操作步骤如下:
在“设计”视图中打开报表。
单击工具箱中的“线条”工具。
单击报表的任意处可以创建默认大小的线条,或通过单击并拖动的方式可以创建自定义大小的线条。
如果要细微调线条的长度或角度,可以单击线条,然后同时按下Shift键和方向键中的任意一个。
如果要细微调整线条的位置,则同时按下Ctrl键和方向键中的一个。
利用“格式”工具栏中的“线条/边框宽度”按钮和“属性”按钮,可以分别更改线条样式(实线、虚线和点划线)和边框样式。
(2)在报表上绘制矩形
在报表上绘制矩形的具体操作步骤如下:
在“设计”视图中打开报表,单击工具箱中的“矩形”工具。
单击窗体或报表的任意处