Access2003数据库教程第6章报表2Access2003数据库教程•第1章数据库系统概述•第2章Access2003数据库系统的基本概念•第3章重要的表操作•第4章查询•第5章创建实用窗体•第6章报表•第7章数据访问页的设计•第8章宏•第9章模块•第10章查询综合例题第6章报表3第6章报表•6.1报表简介•6.2创建报表•6.3使用设计视图创建或编辑报表•6.4在报表中计算和汇总•6.5创建子报表•6.6报表打印•本章小结第6章报表46.1报表简介6.1.1报表和窗体的区别•1.报表的作用报表是数据库的主要对象之一,利用报表可以对数据库中的数据进行显示,还可以进行排序、分组计算、累计、求和等操作,并可以完成数据打印格式的定义及打印的任务。报表中的大部分信息来自它所基于的数据表、查询。报表中所有信息都包含在报表的控件中,报表设计完成后,每次打印报表时都可以获得当前库中的最新数据。第6章报表5•2.报表和窗体的区别窗体是交互式界面,用户通过窗体可以对数据进行筛选、分析,也可以对数据的输入、编辑和人机对话。而报表是数据的打印结果,不能用于输入数据,不具有交互性。窗体可以用于控制程序流程操作,其中包含一部分功能控件,如命令按钮、单选按钮、复选框等,这些是报表所不具备的。报表中包含较多的控件是文本框和标签,以实现报表的分类、汇总等功能。第6章报表66.1.2报表的分类•1.纵栏式报表–纵栏式报表每行显示一个字段,左边带有一个由标签显示的字段名。•2.表格式报表•3.图表报表–有柱形图、折线图、饼图等20种图表•4.标签报表–方便大批量的数据打印第6章报表7图6.1.1纵栏式报表第6章报表8图6.1.2表格式报表第6章报表9图6.1.3图表报表第6章报表10图6.1.4标签报表第6章报表116.2创建报表•“自动创建报表”是最简单、最快捷的创建报表的方法,它能创建两种格式的报表:纵栏式、表格式。6.2.1自动创建报表例6.2.1为“学生”表创建一个纵栏式报表。操作步骤如下图所示:第6章报表12图6.2.1进入报表窗口例6.2.1为“学生”表创建一个纵栏式报表。操作步骤如下图所示:第6章报表13图6.2.2新建报表对话框第6章报表146.2.2使用向导创建报表使用“报表向导”创建报表,不仅可以选择所需的字段,还可以定义报表的布局和样式,创建出格式较丰富的报表。例6.2.2使用报表向导,创建一个“教师”报表,包含“教师编号”、“姓名”、“学历”和“职称”字段。创建步骤如下图所示:第6章报表15图6.2.3“报表向导”之一第6章报表16图6.2.4“报表向导”之二第6章报表17图6.2.5“报表向导”之三第6章报表18图6.2.6“报表向导”之四第6章报表19最后创建的报表如图6.2.7所示图6.2.7“教师”报表第6章报表20•例6.2.3使用报表向导,创建一个“课程”报表,分别按课程计算平均分,效果如右图所示。第6章报表21•分析:★“课程”报表中包含的“课程名称”、“姓名”和“考试成绩”字段分别在“学生”、“课程”和“选课成绩”三个表中。★创建“课程”报表需要同时用到“学生”、“课程”和“选课成绩”这三个表中的数据。★这三个数据表之间事先应该已经建立了关系。创建“课程”报表步骤如下图所示:第6章报表22图6.2.9选择报表中用到的字段第6章报表23图6.2.10确定查看数据的方式第6章报表24图6.2.11确定分组级别第6章报表25图6.2.12排序选项第6章报表26图6.2.13汇总选项第6章报表276.2.3使用图表向导创建报表•例6.2.4根据“教师”表中的数据,利用“图表向导”创建一个“各职称不同性别人数”的图表报表,如图6.1.3所示。第6章报表28图6.2.14“图表向导”对话框之一第6章报表29图6.2.15“图表向导”对话框之二第6章报表30图6.2.16“图表向导”对话框之三第6章报表31图6.2.17“图表向导”对话框之四第6章报表326.2.4使用标签向导创建报表•例6.2.5创建一个如图6.1.4所示名为“入校日期”的标签。•步骤如下:–(1)在图6.2.2所示的新建报表对话框选择“标签向导”,再选择“学生”表作为数据来源。–(2)下一部选择标签型号Aone28185,其尺寸为:42mm×70mm×3(高×宽×每页标签列数)。–其余步骤如下图所示:第6章报表33图6.2.18“标签向导”之一第6章报表34图6.2.19“标签向导”之二第6章报表35图6.2.20“标签向导”之三第6章报表366.3使用设计视图创建或编辑报表•1.报表的视图–有三种视图:设计视图、打印预览和版面预览。•2.打开报表设计视图–如下图6.3.1所示•3.报表中节的作用–报表由报表页眉、页面页眉、主体、页面页脚和报表页脚等5个部分(称为节)构成。第6章报表37图6.3.1报表设计视图第6章报表38•(1)报表页眉:位于报表首页的顶部,一般用于放置报表的标题、单位的标记等。•(2)页面页眉:位于报表中每个打印页的顶部,可用于显示每一页的标题等信息。•(3)主体:位于报表的中间部分,用于显示报表数据源中各条记录的数据。报表数据源中的各条记录应放在主体节中。•(4)页面页脚:位于报表中每打印页的底部,与页面页眉相对应,可以用来显示页码等信息。•(5)报表页脚:位于整个报表的最后一页的底部,与报表页眉相对应,一般用来显示报表总计等信息。第6章报表396.3.1使用设计视图创建报表步骤如下:–在图6.2.2所示的“新建报表”对话框中,选择“设计视图”,并选择“学生”表作为报表的数据来源,进入图6.3.3所示的报表设计视图。•1.使用设计视图创建报表的实例例6.3.1以“学习”表为数据源,创建一个如图6.3.2所示的名为“学生家庭地址”的报表,包含“学生编号”、“姓名”、“性别”、“家庭住址”和页码。第6章报表40图6.3.2“学生家庭地址”报表的局部第6章报表41图6.3.3报表设计视图第6章报表42图6.3.4页码对话框第6章报表43图6.3.5创建“学生家庭住址”标签第6章报表44图6.3.6打开“属性”菜单第6章报表45图6.3.7“标签属性”窗口第6章报表46•2.控件及工具箱(如图6.3.5所示)图6.3.5创建“学生家庭住址”标签第6章报表476.3.2编辑修改报表•例6.3.2将例6.2.2创建的“教师”报表的格式改为“随意”。1.修改报表的格式Access提供了6种预定义报表格式,分别是“大胆”、“正式”、“淡灰”、“紧凑”、“组织”和“随意”。第6章报表48图6.3.8“自动套用格式”对话框第6章报表49例6.3.3在“学生家庭地址”报表中,按“学生编号”降序排列。操作步骤如下图所示。•2.改变报表数据的排序第6章报表50图6.3.10“学生家庭地址”的设计视图第6章报表51图6.3.11“排序与分组”对话框第6章报表52例6.3.4为例6.2.2创建的“教师”报表添加标签和文本框,使用函数将每个教师的参加工作时间显示出来,如图6.3.12所示。•3.在报表中使用函数,文本框第6章报表53图6.3.12添加参加工作时间第6章报表54•操作步骤如下图所示:图6.3.13报表的设计视图第6章报表556.4在报表中计算和汇总6.4.1在报表中添加计算控件可以在报表中设置结合型“计算控件”,将“计算控件”数据来源设置为计算表达式来解决。1.表达式表达式可以用在表、查询、窗体、报表、数据页和宏等六个对象中。第6章报表56–字段名必须用一对中括号[]括住,例如:[平时成绩]。–字符串必须用一对英文半角单引号或双引号括住,例如:女。–*日期时间应该用半角的“#”号括起来,例如:#84-1-25#。(1)Access表达式的有关规则第6章报表57(2)函数函数功能说明Year(日期表达式)返回值是表示年份的四位整数例如“工作时间”字段的值是1983年1月25日,则Year([工作时间])的值是1983Date()返回值是系统当天的日期(含年月日)例如当前系统日期是2008年11月8日,则Date()的值是2008-11-8Day(Date())返回值是系统当天的日期(只是日)例如当前系统日期是2008年11月8日,则Day(Date())的值是8Now()返回值是系统当天的日期和时间例如当前系统日期是2008年11月8日,时间是16:05:16,则Now()的值是2008-11-8:16:05:16表6.4.1部分常用日期函数第6章报表58(3)运算符运算符说明+加例如计算[平时成绩]+[考试成绩]-减例如计算[总工资]-[扣款]*乘例如计算[平时成绩]*0.3/除例如计算[总分]/[人数]^乘幂例如计算[订购量]^2第6章报表59•例6.4.1以“选课成绩”表为数据源,创建一个名为“学生期评成绩”的报表,如图6.4.1所示,包含学生编号、课程编号、学期、平时成绩、考试成绩和期评成绩,其中,期评成绩=平时成绩×0.3+考试成绩×0.7。2.直接输入表达式通过表达式生成器创建。第6章报表60操作步骤如下图所示:图6.4.2创建计算控件第6章报表61结果-图6.4.1“学生期评成绩”的报表第6章报表62例6.4.2在例6.3.4完成的“教师”报表中,根据教师“工作时间”字段的值,利用计算控件来计算教师的工龄。操作步骤如下图所示:3.通过属性窗口或生成器创建表达式第6章报表63图6.4.3“属性”窗口第6章报表64图6.4.5表达式生成器第6章报表656.4.2在报表中汇总•在报表中可以对已有的数据源按某一字段值分组,对字段值相同的各组记录进行统计汇总计算。当然,也可对数据源中的全部记录进行统计汇总。例6.4.3对例6.4.1创建的“学生期评成绩”报表按“课程编号”字段分组求总分,放在分组页脚中。操作步骤如下:第6章报表66•(1)在“报表”窗口中,选择“学生期评成绩”报表,打开设计视图窗口,选择菜单“视图”→“排序与分组”选项,打开如图6.4.7所示的对话框。第6章报表67图6.4.7“排序与分组”对话框第6章报表68图6.4.8创建文本框和标签框第6章报表69图6.4.9分组求总的结果第6章报表706.5创建子报表•子报表是插在其他报表内部的报表。包含子报表的报表叫做主报表。•一张主报表可能包含多张子报表,但一张主报表最多只能包含两级子报表。6.5.1子报表的定义和作用第6章报表716.5.2在已有报表中创建子报表•具体方法如下:–(1)在报表的设计视图打开“学生”报表,如图6.5.1所示,在确保工具栏上的“控件向导”按钮被选中的情况下,单击“工具箱”中的“子窗体/子报表”控件按钮后,将光标移到“主体”区域中,按住左键并拖动,然后释放鼠标,将弹出“子报表向导”对话框,如图6.5.2所示。例6.5.1在已有的“学生”报表中创建一个“成绩表”子报表。第6章报表72图6.5.1报表的设计视图第6章报表73图6.5.2“子报表向导”对话框之一第6章报表74图6.5.3“子报表向导”对话框之二第6章报表75图6.5.4“子报表向导”对话框之三第6章报表76图6.5.5“子报表向导”对话框之四第6章报表77图6.5.6主报表“学生”中生成的子报表“成绩表”第6章报表78图6.5.7更改子报表的布局第6章报表796.6报表打印•在打印报表之前,常常需要对页面进行设置如打印所用纸张的大小、页边距、打印的方向等。6.6.1报表的页面设置例6.6.1为教学管理系统中的“学生家庭地址”报表设置页面。操作步骤如下:第6章报表80(1)打开“教学管理系统”数据库系统文件,进入报表窗口,选择“学生家庭地址”报表后打开报表设计视图窗口。(2)选择菜单中的“文件”→“页面设置”选项,显示“页面设置”对话框,选择“边距”选项卡,如图6.6.1所示,上、下、左、右都输入20mm。第6章报表81图6.6.1“页设置”之一第6章报表82图6.6.2“页设置”之二第6章报表83图6.6.3“页设置”之三第6章报表846.6.2报表打印预览•1.进入“打印预览”窗口•2