罗斯文数据库学习连载(37)
时 间:2008-04-28 22:19:29
作 者:马丽 ID:94 城市:南通
摘 要:“各国雇员销售额”报表
正 文:
8.“各国雇员销售额”报表
“各国雇员销售额”报表实现按国家和雇员分组打印销售额,并计算小计、百分比、总计等。运行时需要输入日期参数。如果雇员的总销售额>5000时,还会显示“超额完成”标签。这个报表中没有用到宏,有关功能是通过VBA编程来实现的。进入设计视图报表的记录源是“各国雇员销售额”查询,而“各国雇员销售额”查询是个参数查询,所以在报表运行时提示要求输入参数。
报表页眉中包含报表标题和一个统计的日期范围,这个范围是由一个名为区域的文本框实现的。文本框的控件来源为:“="销售额:从 " & [起始日期] & " 到 " & [终止日期]”,它用“&”字符串连接符将三部分的字符串连接起来,其中“起始日期”和“终止日期”是数据源中的参数,可以直接在报表中使用,从而在运行时跳出提示框要求输入。报表页眉设置了背景色。
页面页眉无内容
国家页眉是组页眉,按国家分组。包含一个标签,一个“国家”文本框,用一条粗线作分隔。
“=[姓氏] & [名字]”页眉是一个二层组页眉,嵌套在第一层国家组中,按姓名分组。由于并没有直接的姓名字段,所以将“姓氏”和“名字”用连字符连起来使用。“保持同页”设置为“与第一条详细记录”,表示该组中的内容,第一条数据要与组页眉在同一页。本组页眉中有一个显示姓名的文本,及一些提示标签,给主体内容以标示。另外还有一些分隔线。设成红色字体的“超额完成”是否显示是通过代码来实现的。要在代码编缉器(VBE)中写入代码,我们可以通过事件属性进入VBE(VB编程简介在下一节)。在这里我们先定位到“=[姓氏] & [名字]”页眉,双击该节前的小框框会弹出属性窗口,切换到事件属性,如下图
我们可以在组页眉格式化中加入代码,点击右侧的生成器(有…的小方框),就会打开VBE窗口,并自动加上sub过程的开始与结束语句,我们只需在只间写上要执行的语句即可。
If Me!销售人合计 > 5000 Then
Me!超标标签.Visible = True
Me!SalespersonLine.Visible = True
Else
Me!超标标签.Visible = False
Me!SalespersonLine.Visible = False
End If
这里用到一个条件结构,IF...then…else…END IF。具体可查看帮助,结合实例的意思如下,销售人合计>5000时,超标标签的内容“超额完成”就显示出来,下面的横线也可见;否则超标标签不可见,下面的横线也不可见。
国家页眉中也有一个格式化事件,可以通过同样的方法查看,内容只有一行“Page = 1”,这个语句的含义为当一个新的国家组开始时,该页的页码显示为1。
主体节包含四个文本框控件,前两个来自于数据源中的字段,“占销售人总销售额的百分比”文本框的控件来源为“=[销售金额]/[销售人合计]”, [销售人合计]是姓名页脚中的字段,格式设为百分比。“占国家总销售额的百分比”文本框同些类似,控件来源为“=[销售金额]/[国家合计]”,格式也为百分比,[国家合计]是国家页脚中的字段。
“=[姓氏] & [名字]”页脚是与“=[姓氏] & [名字]”页眉相对应的组页脚,包含三个文本框,“雇员合计标题”文本框的控件来源为“="合计:" & [销售人] & ":"”。 “销售人合计”文本框的控件来源为“=Sum([销售金额])”,对本组中的销售金额用聚合函数进行求和,在组页眉或页脚中可以访问本组中的数据。“占国家总销售额的百分比2”的控件来源为“=[销售人合计]/[国家合计]”,与1的区别是这是一个人的总销售额占国家合计的百分比,而不是每笔订单占国家合计的比例。
国家页脚中有四个文本框,与“=[姓氏] & [名字]”页脚雷同,只是所在的分组不同,所以访问的数据也不同。可以对比两个相同的控件来源“=Sum([销售金额])”在两个组页脚中所产生的不同数据。理解组的含义。
页面页脚中包含日期和页码,背景为灰色。
报表页脚中包含全部销售额的汇总,控件来源还是相同的“=Sum([销售金额])”。
另外报表中还有一个无数据(NoData)事件,这个事件发生的报表的Open事件之后,如果记录集中无数据,就会执行这个事件,在这里的用MsgBox显示了一个信息,然后退出。
Access软件网官方交流QQ群 (群号:483923997) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access窗体导出PDF】...(04.08)
- 【Access窗体导出PDF】...(04.07)
- Access两种方式实现即时更...(03.01)
- Access隐藏与显示lacc...(01.12)
- 【Access高效办公】将每个...(12.23)
- Access21点游戏源代码(12.13)
- 【Access窗体导出Exce...(11.15)
- 【Access开发】Acces...(11.14)
- 通过Access宏录入数据到选...(11.10)
学习心得
最新文章
- 【Access修改记录示例】编辑选...(04.22)
- 【Access表名称命名建议】将A...(04.20)
- Access学习笔记--用Acce...(04.19)
- 【Access重复项查询示例】将A...(04.17)
- Access快速开发平台企业版--...(04.16)
- 【Access模块示例】通过模块代...(04.15)
- Access查询里面分组合计功能添...(04.13)
- 【Access删除查询】删除数字最...(04.12)
- 显示文件夹中所有文件的修改时间(04.11)
- 铁路工程管理系统;铁路工程管理小程...(04.10)