设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2485|回复: 0
打印 上一主题 下一主题

[其它] 转(huanlei98)使用Access封装程序开发模板

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-30 10:39:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用Access封装程序开发模板

转说明:
希望有时间的大侠们,研究一下这方面的内容,能提供一些例子当然就好了,
此内容是转huanlei98的,但huanlei98没有给出例子。

Access作为Microsoft Office家族的一员,既是程序开发工具,又是关系数据库,其强大的程序设计功能往往被人忽视。笔者总结多年使用Access的经验,用Access封装了应用程序的开发和报表设计程序,既可以快速地开发应用程序,又可以从异构数据库中提取数据,向第三方提供数据分析和综合报表。

一、Access的特点
Access作为程序开发工具,本身有自己的脚本(宏),同时又内置VBA作为其开发语言,可以与Office家族的Word、Excel、Outlook等其他成员集成使用,可以开发出满足复杂要求的软件。
Access支持丰富的对象,既有本身的对象集AccessObject, 可以通过容器对Access对象进行管理。它支持多种数据库访问对象DAO、ADO、ODBC等,可以让VB方便地访问Access、Sql Sever等数据库,并通过ADOX对远程对象进行管理。Access还可以灵活地访问外部对象。
Access作为关系数据库,具有图形化的数据库设计界面、丰富的数据类型,其数据库可以直接转换为Sql Serevr数据库的格式。

在程序设计上,宏与VBA结合起来使用,可以让Access具备强大的程序设计功能。Access的宏可以通过调用VBA代码,而VBA也可以调用宏,在VBA中使用Docmd命令可以直接调用Access对象,将VBA与宏完美集成,使Access既可以灵活地访问数据,又可以方便地操控Form、Report等界面设计对象,从而满足各种程序设计需求。
VBA继承了VB强大的开发能力,可以将许多常用的功能封装为Class,还可以通过DAO对象调用CreateQuerydef,将复杂的SQL查询封装,并在SQL查询中广泛使用变量,十分灵活;而Access的关系数据库特性又为数据集成和分析提供了很好的平台。
作为关系数据库,Access支持扩展的SQl查询语言,内置丰富的函数,又可以灵活地自定义函数,SQL查询既可以保存为Query,又可以在VBA中封装使用。

Access安全性是通过Workgroup文件实现的,可靠性高,实现起来方便,可以对Table、Query、Form、Report、Macro、Module按照用户和用户群两种级别进行读、写、运行、设计等访问许可设置。还可以使用密码对Access数据库加密,通过生成mde文件对VBA代码加密。
二、应用开发模板
界面封装项:
1.       登录界面:这是一个标准的Form表单,与远程数据库进行用户名和密码的验证,并从远程数据库读取权限等全局信息。
2.       修改密码界面:允许已登录用户修改个人密码。
3.       查询条件界面:为所有需要按一定条件过滤、查询的Form表单、Report报表提供的统一界面。
4.       主菜单界面:这是登录后显示的第一个界面,也是其他所有Form表单、Report报表返回的界面;在主菜单上显示程序名称、版本、版权等,并且绑定宏菜单。
5.       数据备份界面:界面统一,但是备份代码取决于后台的数据库而略有差异。
6.       数据录入和数据审核界面:界面差异与封装的流程有关,对单个的Access模板而言,界面是统一的。数据项与表结构对应,审核界面包含新增、修改、删除、过滤等统一按钮。
7.       用户管理界面:允许管理员增加、删除用户,并设置用户访问权限。
8.       代码、基础资料管理:设计风格与数据录入和数据审核界面一致。
代码封装项:
1.       公共函数:对Access对象管理的函数,远程数据链接与获取的函数,登录验证与数据合法性验证的函数,权限验证的函数,清理临时数据的函数等等
2.       全局变量:包括变量的赋值与变量值的获取
3.       类库Class,常用API函数
4.       Form表单代码:数据录入代码的封装,数据查询代码的封装,数据审核代码的封装,保存数据代码的封装,修改数据代码的封装。
5.       安全性代码:许可代码及安全属性的封装
宏封装项:
1.       自运行宏Autoexec:运行主菜单Form及登录界面
2.       程序界面入口宏:用来打开数据录入、查询及其他界面,进入界面后的其他功能全部由VBA代码实现
3.       通过主菜单界面绑定程序界面入口宏,通过宏调用VBA代码,实现数据的装入、保存、审核等复杂功能。
模板参数:
1.       Table表名及Field字段名:保存数据时用到的Table表名、Field字段名,以及进行表单Form、报表Report设计时用到的Field字段名
2.       SQL语句及Where条件:用来从远程数据库获取数据的SQL语句,生成临时Table表的SQL语句,以及填充数据源的SQL语句
3.       远程数据库访问方式:对于不同的数据库,不同的路径,设置相应的参数。
4.       临时Table表:用来存储远程数据库的数据,减少SQL查询语句的复杂程度,提高SQL语句的执行效率。
5.       查询条件界面中控件Control的设置
定制内容:
1.       对用户而言,除了一般的模块访问权限外,可能还要求按组织机构来屏蔽或者开放数据的访问,这就需要对用户访问的数据范围进行限定。
2.       按上一项要求的访问规则对数据访问进行过滤。
3.       对于流程要求的特殊的商业逻辑,或者数据之间的钩稽关系,或者跨数据库之间的操作,或者书写相应的VBA代码,或者在数据库端使用触发器、存储过程等解决
三、报表开发模板
界面封装项:
1.       登录界面:这是一个标准的Form表单,用来进行用户名和密码的验证,并从远程数据库读取权限等全局信息。
2.       修改密码界面:允许已登录用户修改个人密码。
3.       查询条件界面:为所有报表查询的Form表单、Report报表提供的统一界面,可以针对不同的条件进行数据的筛选和过滤。
4.       主菜单界面:这是登录后显示的第一个界面,也是其他所有Form表单、Report报表返回的界面;在主菜单上显示程序名称、版本、版权等,并且绑定宏菜单。
5.       报表导航界面:列出可用的分析报表,并引导打开相应的分析报表
6.       报表查询界面Form表单:界面风格统一,主Form显示与导航界面相同的报表名称、过滤按钮等,数据分析中的百分率、同比、环比分析等。子Form按照由总到分的原则逐级显示查询结果。子Form的数量因数据汇总的层次而异。
7.       报表打印界面Report: Report表头、表脚,与导航界面相同的报表名称,Report打开与关闭时的事件代码等。
8.       报表信息维护:报表编号、报表名称、按组织结构对报表进行分组,这是报表导航界面的数据来源。
9.       用户管理界面:允许管理员增加、删除用户,并设置用户访问权限。
代码封装项:
1.       公共函数:对Access对象管理的函数,远程数据链接与获取的函数,登录验证与权限验证的函数,清理临时数据的函数等等
2.       全局变量:包括变量的赋值与变量值的获取
3.       类库Class,常用API函数
4.       Form表单代码:封装条件过滤代码、表单打开与关闭的事件代码。
5.       与报表编号对应的源数据获取代码,以及结果数据生成的代码等
宏封装项:
1.       自运行宏Autoexec:运行主菜单Form及登录界面
2.       程序界面入口宏:用来打开导航界面、维护工具界面,进入界面后的其他功能全部由VBA代码实现
3.       通过主菜单界面绑定程序界面入口宏,通过宏调用VBA代码,实现数据的获取、挖掘、清洗等复杂功能。
4.       导航界面宏:使用宏打开报表查询的Form
模板参数:
1.       Table表名及Field字段名:表单Form输出、报表Report输出时用到的Field字段名
2.       SQL语句及Where条件:用来从远程数据库获取数据的SQL语句,生成临时Table表的SQL语句,以及填充数据源的SQL语句
3.       远程数据库访问方式:对于不同的数据库,不同的路径,设置相应的参数。
4.       临时Table表:用来存储远程数据库的数据,减少SQL查询语句的复杂程度,提高SQL语句的执行效率。
5.       查询条件界面中控件Control值的设置
定制内容:
1.       特殊的SQL输出要求、特殊的数据取值范围等,要求复杂的SQL语句及定制数据存储,对报表界面也需要进行相应的定制。
2.       对于连续的报表要求,需要将报表结果保存,从而形成类似数据仓库的要求。
3.       由于汇总的口径不同,需要在原始数据或者代码的基础上,生成新的代码。
4.       统计分析中常常需要的图表分析,如柱状图、饼状图、折线图等
四、与其他开发工具的比较
Access作为程序设计语言,具有VB的一切优点,而且比VB更加强大,本身可以作为SOA应用的开发平台;作为数据集成和报表开发的工具,完全能够满足BI的要求,而其快捷高效、成本低廉的优点又是其他工具所不能比拟的。
1.       开发效率
用以上模板开发一般流程(包括3至4种代码,2至3种单据)的应用程序,包括数据库设计、代码界面、单据录入、单据审核、权限管理、用户管理、登录界面等,周期约为20小时。
用以上模板开发一般报表,从4至10个表中提取数据,需要2至3个显示界面,含有2至6个查询条件,周期约为4至8小时。
2.       应用范围
上述模板可以作为专业的软件开发工具,用来开发商业软件,可应用于财务管理、仓库管理、地产管理、采购管理、销售管理、酒店管理、人力资源、薪酬管理等多种行业,其代码紧凑,开发效率要高于其他语言;用其开发的每一个应用都可以看成是一个SOA的流程,维护成本比其他语言要低。
也可以将上述模板作为ERP产品的辅助开发工具,对特殊流程进行定义。由于Access本身是一个关系数据库,从异构数据库中进行数据挖掘和数据提取十分方便,能够快捷地开发部门级、企业级的各种报表,是数据分析的有力工具,其数据集成能力不逊于专业的商业智能软件。
3.       灵活性
只要Access能正确安装,就能保证Access开发的应用和报表的正常使用。以Microsoft Office的兼容性来保证Access应用和报表的兼容性,避免了其他语言开发出来的程序在不同平台上使用的版本问题。既可以打包分发,又可以以文件拷贝Access程序,免去安装和维护的许多劳动。
4.       效果比较
Access内置了丰富的控件,可以开发出生动的应用程序界面,提供了多种统计图表以满足数据分析的要求;若调用其他控件和类库,可以开发出可与任何软件产品相媲美的程序。
五、前景
针对每一种业务流程,可以封装成不同的程序模板,每个Access文件都是独立的。由于数据结构完全按照流程特征定义,数据不仅可用于报表制作,而且可以被其他流程引用。流程的变更只需对当前模板进行修改,不会影响其他流程的使用,十分灵活。随着对不同流程的研究和梳理,会将更多的流程纳入模板管理,模板会越来越丰富,完全能够满足面向SOA的程序开发。
SAP、Oracle都有专业的商业智能软件,国内的ERP厂商也在不断扩展其ERP产品的数据分析功能,这些产品的一个共同点是结果输出十分漂亮、直观,但是要求数据分析员有相当的数据库基础,并要借助特定的开发工具来实现复杂的要求,甚至有专业的数据集成公司来从事这项业务。用Access模板进行报表开发,完全可以胜任跨平台的数据集成要求,而对分析员的要求是熟悉通用的SQL查询语言。由于Office的广泛使用,Access模板不但易于掌握,而且应用范围更加普遍。
由于专业的商业智能软件一般价格都比较贵,并且对一些特殊的数据集成并不能很好地解决,Access报表模板很好地解决了这些问题。它近乎免费的成本(Office的许可)非常合乎广大中小企业的要求,由于Access本身是一个关系数据库,可以灵活地从异构数据库中抓取数据,并通过Table存储临时数据,能够满足企业十分独特的数据分析要求。所以,对企业而言,Access报表模板是很好的数据分析、统计报表的工具,适用于高频度、多角度的数据分析的需要。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 02:49 , Processed in 0.220155 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表