第7章创建Access的报表对象学习目标使用自动方式创建报表使用向导创建报表使用设计器创建报表在报表中添加计算字段进行计算和汇总使用自动方式创建数据访问页使用向导创建数据访问页本章内容1.通过自动方式创建报表2.通过向导创建报表3.在设计视图中创建报表4.在报表中添加计算字段与分组汇总数据5.总结提高6.知识扩展7.思考与练习用窗体在屏幕上显示数据效果很好,但有时要把数据输出打印在纸上,如果仍然使用窗体中显示的格式效果就不一定理想了,如何将数据库中的数据打印出来呢?Access提供了报表对象,用它来完成定义数据库中数据打印在纸上的格式及打印在纸上的任务。本节的主要任务就是使用自动、快捷的方式创建报表对象。7.1.通过自动方式创建报表7.1.1.使用“自动报表”方式简单创建纵栏式报表问题的提出用什么方式可以快速根据表或查询对象创建出报表对象呢?Access提供的“自动报表”方式是创建报表最快捷的方法。【操作实例1】通过“自动报表”方式,根据“外设销售参考价格”表创建“外设销售参考价格报表”纵栏式报表对象。【操作实例1】操作步骤:(1)启动Access数据库打开“格达公司”数据库。(2)在数据库窗口【对象】栏选中【表】对象,打开“外设销售参考价格”表。(3)在主窗口工具栏单击【自动报表】按钮,如图7.1所示,即可创建如图7.2所示纵栏式报表对象。(4)在主窗口菜单栏单击【文件】→【保存】菜单命令,保存报表对象为“外设销售参考价格报表”。【操作实例1】图7.1单击【自动报表】按钮图7.2使用自动方式创建的纵栏式报表归纳分析“自动报表”方式创建报表最快捷、最简单。“自动报表”方式可根据打开或选中的表或查询对象直接创建出报表对象。“自动报表”方式创建的报表只显示表或查询的记录数据,没有报表标题、页眉和页脚,不美观。一行显示一个字段与字段名。可以根据“自动报表”方式快速创建报表的基本格式,然后再使用报表设计器对报表格式进行修改与美化处理。7.1.2使用“自动创建报表”方式快速创建表格式报表问题的提出用什么方式可以快速根据表或查询对象创建出一行显示一条记录的报表对象呢?Access提供的“自动创建报表”方式可以解决这个问题。【操作实例2】通过“自动创建报表”方式,根据“客户销售价格表”创建“客户销售价格报表”表格式报表对象。【操作实例2】操作步骤:(1)在“格达公司”数据库窗口【对象】栏选中【报表】对象,如图7.3所示。(2)单击数据库窗口工具栏【新建】按钮打开【新建报表】对话框,从中选择【自动创建报表:表格式】选项,如图7.3所示。(3)在【新建报表】对话框的表/查询列表框中选择表对象“客户销售价格表”,如图7.3所示,单击【确定】按钮,即可创建如图7.4所示的表格式报表。(4)保存报表为“客户销售价格表”。【操作实例2】图7.3创建表格式报表的方法图7.4表格式报表归纳分析“自动创建报表”方式需要回答报表的类型、创建报表的表或查询的名称两个问题,即可创建出报表,因此创建方式也很简单。“自动创建报表”方式创建的表格式报表是一行显示表或查询的一条记录数据,具有报表标题、页眉和页脚,日期,比纵栏式报表清晰、美观。归纳分析可以根据“自动创建报表”方式快速创建报表的基本格式,然后再使用报表设计器对报表格式进行修改与美化,创建更复杂的报表。使用自动创建报表的方式虽然简单、快捷,但一般都是基于单个表或查询创建的,如果要创建基于多个表或查询的数据,需要先创建一个查询,在根据这个查询来创建报表。另外,自动创建报表也可创建带有标题、页脚的纵栏式报表。7.2.通过向导创建报表虽然使用“自动报表”和“自动创建报表”方式可以快速地创建一个报表,但数据源来自一个表或查询中,报表格式也比较简单,如果要创建其他格式的报表,可以通过向导来创建,向导可以根据用户的回答来创建所需要的报表,创建的报表对象可以包含多个表中的字段,并可对记录分组、排序、计算各种汇总数据。本节的主要任务就是通过向导创建基于多个表或查询的报表、图表报表和标签报表。7.2.1.创建基于多个表或查询的报表问题的提出虽然使用“自动报表”和“自动创建报表”方式可以快速地创建一个报表,但数据源来自一个表或查询中,能否根据多个表或查询对象的数据创建报表对象呢?使用报表向导可以解决这个问题。【操作实例3】通过向导创建基于“客户”、“客户与物品”、“物品”3个表的报表对象“不同客户物品销售价格报表”。【操作实例3】操作步骤:(1)启动报表向导(2)回答向导提问①确定报表使用的数据记录源及报表上出现的数据字段【操作实例3】②确定在报表上查看数据的方式③确定报表是否使用分组级别【操作实例3】④确定报表排序与汇总方式。⑤确定报表使用的布局方式【操作实例3】⑥确定报表使用的样式⑦确定报表使用的标题(3)保存向导创建的报表对象归纳分析创建基于多个表或查询报表要先为它们建立关系,然后才能创建基于这些表和查询的报表。如果向导创建的报表不够理想,可以单击工具栏上的【设计】按钮切换到报表【设计】视图中进行修改。7.2.2.创建图表报表问题的提出图表具有直观、漂亮的特点,在报表中如何用图表显示数据呢?跟随图表向导可以创建一个用图表显示数据的图表报表对象。【操作实例4】使用图表向导创建一个显示物品库存量的报表对象“电脑产品库存量图表报表”。操作步骤:(1)启动图表向导【操作实例4】(2)回答向导提问①确定用于图表中的字段②确定图表使用的类型【操作实例4】③确定数据在图表中的布局方式图7.16数据在图表中的布局方式图7.17“汇总”对话框图7.18“圆环图”图表【操作实例4】④确定图表的标题图7.19选择图表标题图7.20通过向导创建的图表报表归纳分析通过向导创建图表报表,只能基于一个表或查询对象来创建。用来在图形中显示的字段只能选择两个,一个字段用来图例说明文字,一个字段用来确定使用图形显示的数据。在设计视图选中图表对象,单击主窗口菜单栏【编辑】→【图表对象】→【编辑】菜单命令,可对图表对象进行修改,主窗口菜单栏中将出现【图表】菜单,单击【图表类型】菜单可以打开“图表类型”对话框,选择其中的图表更换图表类型。7.2.3.创建标签报表问题的提出在用户实际工作当中,可能需要邮寄大量信件,能否根据表或查询对象数据创建一个显示多个新封地址的报表对象呢?使用报表向导可以解决这个问题。将报表打印出来就可以分别剪下来使用了。【操作实例5】通过向导创建基于“客户”表的标签报表对象“客户地址标签”操作步骤:(1)启动图表向导(2)回答向导提问①确定标签尺寸【操作实例5】②确定标签使用文本的字体和颜色③确定标签内容【操作实例5】④确定标签排序依据⑤确定标签报表对象的名称【操作实例5】(3)自动创建报表归纳分析通过向导创建标签报表,只能基于一个表或查询对象来创建。在标签中显示的字段可以来自指定的表或查询,也可以直接输入。通过指定标签尺寸可以确定标签的大小与一页上显示的标签个数。7.3.在设计视图中创建报表与其他设计视图相同,使用报表设计视图可以从无到有地创建报表,也可以在设计视图中对已有的报表进行编辑与修改。本节的主要任务就是在报表设计视图创建或修改报表。7.3.1.认识报表设计视图使用设计器创建报表,先要打开报表设计视图,了解报表设计视图的界面。1.打开报表设计视图的方式7.3.1.认识报表设计视图2.报表中节的作用(1)报表页眉:报表页眉中的内容在整个报表顶部显示一次,是对整份报表的概括,一般用于设置报表的标题、公司的徽标和打印日期。(2)页面页眉:其内容显示在每个打印页的顶部,可用来显示列标题等信息。(3)主体:该区域包含了报表数据的详细内容。报表数据源中的各条记录应放在主体节中。7.3.1.认识报表设计视图(4)页面页脚:其内容显示在每个打印页的底部,可用来显示日期或页码等信息。(5)报表页脚:报表页脚中的内容只在整个报表的底部显示,一般用来显示报表总计等内容。报表页脚虽是报表设计中的最后一个节,但显示在最后一页的页面页脚之前。以上是报表固有的5个节,当在报表中对数据进行分组统计时,还会出现用于分组的节。7.3.2.创建主/子报表问题的提出可以根据需要将多个报表组合成一个报表吗?Access系统提供的主/子报表方式可以解决这个问题。【操作实例6】在设计视图中根据报表“电脑”、“配件子报表”,创建主/子报表对象“电脑使用的配件主子报表”。【操作实例6】操作步骤:(1)创建主报表(2)在主报表上直接创建子报表【操作实例6】(3)回答向导提问确定子报表数据来源。从表或查询中确定子报表包含的字段。【操作实例6】确定主报表与子报表链接字段。确定子报表名称。【操作实例6】删除子报表中的“电脑物品编号”(该字段重复)标签与字段文本框。⑥在设计视图中添加、修改标签文字、移动控件位置、修改字体与颜色、添加直线。⑦浏览添加子报表的报表归纳分析插入子报表的报表称为主报表。主报表中不仅可以插入子报表还可以插入子窗体。主报表最多可以包含两级子窗体或子报表。子报表是插入到其他报表中的报表。创建主/子报表首先要创建出主报表,主报表可以是结合型的报表(与表或查询具有绑定关系),也可以是非结合型的报表(不与表或查询绑定);然后将主报表在设计视图中打开插入子报表。插入子报表有两种方法:在主报表上直接创建要插入的子报表将已有报表作为子报表插入到主报表上(但要保证主报表与子报表之间建立了正确的关系)归纳分析如果觉得报表不够完美,可以返回设计视图对其进行修改与美化。如同在窗体设计视图中修改与美化窗体一样。在主报表中可以通过选择子报表对象,打开其属性对话框,可修改其属性,例如选择“数据”标签,单击“记录源”的生成器按钮,打开“SQL语句”对话框,重新创建“配件”表与“物品”表之间的关系。7.3.3.创建自定义报表问题的提出如何在设计视图中从无到有创建报表对象?报表对象如何与窗体对象、查询对象结合在一起?如何在报表上显示表或查询对象中的数据?如何在窗体对象中打开一个指定的报表对象?【操作实例7】在设计视图中创建自定义报表对象“物品信息查询报告”操作步骤:(1)打开一个空白报表注意指定的数据源来自一个表或查询,如果要从多个表或查询中选择数据,要先为此创建一个包含多个表字段的查询。指定数据源的方法对窗体同样适用。【操作实例7】(2)为报表指定数据源【操作实例7】(3)在“报表页眉”中添加报表标题标签(4)在“页面页眉”中添加字段标题标签(5)在“主体”中添加绑定型文本框(6)移动页面页脚与报表页脚【操作实例7】(7)预览报表【操作实例8】在“公司物品信息查询窗口”窗体中添加一个【预览报表】命令按钮控件,打开“物品信息查询报告”报表对象。【操作实例8】操作步骤:(1)在窗体设计视图中打开“公司物品信息查询窗口”窗体。(2)按下工具箱中【命令按钮】按钮,在窗体放置命令按钮的位置单击并拖拽按钮大小。(3)在打开的【命令按钮向导】对话框【类别】栏中选择【报表操作】选项,【操作】栏中选择【预览报表】操作,如图7.44所示。(4)在接着出现的对话框中确定单击命令按钮时预览的报表为“物品信息查询报告”,如图7.45所示。【操作实例8】图7.44选择报表操作图7.45确定单击命令按钮时预览的报表【操作实例8】(5)确定命令按钮上的文字为“预览报表”。(6)确定命令按钮的名称。【操作实例8】(7)在窗体上浏览报表对象归纳分析从【例8】中可以发现,“物品信息查询报告”报表对象将查询、窗体、报表三个对象结合在一起了。通过窗体对象确定用户的查询要求,由查询对象在数据库中检索到用户要求的数据,使用报表对象输出用户查询的数据。【报表】属性对话框的作用与窗体属性对话框相同,属性设置方式也相同。美化报表的方法与美化窗体相同,在设计视图中打开报