【标题】基于Excel VBA 中小学校收费系统的设计与实现【作者】陈松环【关键词】Excel VBA 办公自动化中小学校收费系统【指导老师】谭海军【专业】计算机科学与技术【正文】1 前言1.1 研究背景办公自动化作为一种新兴的办公手段,拥有强大的数据处理、分析能力,它有足够的潜力“打破”传统的手工办公的束缚,彻底改变办公模式,提高办公效率、增强数据安全性。
无论是从数量上还是质量上,办公自动化都体现出了强大的优势。
对于学校而言,收费及其收费的管理一直以来都是难题。
办公自动化系统的进驻彻底改变了现状。
无论是从速度上还是从效率上都得到了极大的提高。
同时减轻了参与人员的劳动强度。
Microsoft Excel 是一个功能强大、广泛使用的电子表格软件, 可实现多重安全保护(文件密码保护、数字签名、宏安全性) , 它的内置控制语言是VBA (Visual Basic For Application) , 可极大地增强Excel 的数据处理能力,以上特点使得学生收费系统可以利用Excel 的VBA 开发完成。
目前国内外很多教学、科研、设计等部门都在运用这一软件从事日常的数据表格处理。
1.2 国内外办公自动化发展情况办公自动化于50年代在美国和日本首先兴起,最初只是具有电子数据处理(EDP)的簿记功能,60年代被管理信息系统(MIS)取代,直到70年代后期才形成涉及多种技术的新型综合学科一办公自动化(OA)。
80年代,国外办公自动化得到了飞速发展,许多著名的计算机软硬件公司都跻身于这一巨大的市场。
进入90年代以来,办公自动化在世界主要发达国家得到蓬勃发展。
21世纪办公自动化主要向个性化、移动办公和智能化方向发展。
我国的OA软件业经过从80年代末至今多年的发展,已从最初的提供面向单机的辅助办公产品,发展到今天的可提供面向企业级应用的大型协同工作产品。
我国的OA软件厂商在走过一条艰难的创业之路的同时,也积累了许多先进的技术,培养了大量优秀的人才,为我国实现全面信息化社会打下了扎实的基础。
1.3 学校收费系统的现状诸多高级程序语言的出现和学校对收费系统的需求量促使了学校收费系统无论是量上还是质上都达到了很高的标准,功能也是应有尽有。
收费、统计、催款、打印、数据库管理等等无所不能。
权限的划分也是非常合理。
但是,许多收费系统并不提供数据备份、恢复,数据导入导出。
针对这几点,本系统完美支持Excel文件数据的导入导出,大大的提高了收费效率。
同时,数据的导出功能也方便了收费数据的处理、传输和携带。
1.4 开发学校收费系统的意义Microsoft Excel 是一个功能强大、广泛使用的电子表格软件, 可实现多重安全保护(文件密码保护、数字签名、宏安全性) , 它的内置控制语言是VBA (Visual Basic For Application) , 可极大地增强Excel 的数据处理能力,以上特点使得学生收费系统可以利用Excel 的VBA 开发完成。
目前国内外很多教学、科研、设计等部门都在运用这一软件从事日常的数据表格处理。
对于财政开支较小的中小学来说,花一笔不菲的费用去购买专业的收费软件是没有多大必要的, Microsoft Excel能轻松解决他们的问题,同时能为学校节约很大一笔开支。
对于中小学教师来讲,专业的软件使用需要培训,对学校来说也会产生很大一笔费用,但就 Microsoft Excel而言,在各个单位尤其学校使用很普遍,一般的教师都有计算机应用基础,不需要特别的培训就能很熟练的使用。
2 学校收费系统系统分析2.1 需求分析需求分析是软件开发的第一步也是最重要的一步。
需求分析阶段要通过描述系统的需求,通过定义系统中的关键领域的类来建立模型。
分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的渠道,应明确系统要服务于哪些用户,对这些用户提供哪些服务等。
2.1.1 功能需求分析本系统是一个学校收费系统,我的目标是赋予其基本的收费及收费管理功能,使其能够满足大部分用户的需求。
所以我力图分析理论中对用户有价值的功能。
本系统除了有基本的收费功能外,还有数据的导入导出功能。
用户可以根据需要导出或者导入某段时间的收费数据,同时用户也可以对数据进行汇总或者备份。
我将学校收费系统划分为管理员对功能的需求和操作员对功能的需求两个部分。
他们的需求如下所列:? 操作员对功能的需求收费、基本信息(操作员关联、学生信息更改(添加、修改、删除))、收费标准(收费标准一览))、收费查询(按年级查询、按个人查询(按学号查询、按姓名查询))、欠款统计(按班级统计、按年级统计)、票据打印、数据导入导出等。
? 管理员对功能的需求收费、基本信息(操作员关联、学生信息更改(添加、修改、删除)、操作员信息修改(添加、修改、删除、权限设置))、收费标准(收费标准一览、收费标准设置(添加收费项、修改收费项、删除收费项、生成应收款)、补助标准设置(年级补助、贫困补助、个人奖励))、收费查询(按年级查询、按个人查询(按学号查询、按姓名查询))、欠款统计(按班级统计、按年级统计、生成欠款通知单)、票据打印、收费汇总、数据导入、数据导出、数据备份等。
2.1.2 非功能性需求分析要求系统拥有清爽简洁的外观,采用正常平衡的页面布局,强调秩序,能达到安定诚实、信赖的效果;要求界面符合大多用户的操作习惯,操作简单,易学;要求系统进行消息传递时顺利通畅;并且要求系统具有较高的安全性。
与大多数收费系统一样,本系统也采用了数据库,但是本系统不仅仅采用了数据库,同时也采用了EXCEL工作表,二者相结合更能满足用户的需求。
且用户对数据的操作不会直接和工作表或数据库打交道,一切由窗体查询实现。
使整个过程不会变得繁杂。
2.2 系统介绍2.2.1 系统的结构系统的结构如下:图2.2. 1管理员功能图2.2. 2 操作员功能2.2.2 用户使用流程介绍? 管理员:登陆→添加年级→添加班级→添加学生名单→添加收费标准→分发到操作员? 操作员:登陆→真实姓名关联→收费→打印票据→导出收费数据供管理员汇总2.2.3 主要模块介绍2.2.3.1 管理中心模块? 密码修改:无论是管理员还是操作员,只能修改自己的密码,无权修改他人密码。
? 班级管理:该模块负责年级添加、修改、删除和班级添加、修改、删除。
为了保证数据一致,班级中的年级不能以不存在的年级名称进行添加。
? 用户管理:该模块是管理员权限模块,操作员无权操作。
管理员则可以添加、修改、删除用户,改变用户权限,对于用户密码丢失的进行密码重置。
? 学生管理:该模块的功能是添加、修改、删除学生信息。
2.2.3.2 收费模块? 该模块负责学生的收费。
2.2.3.3 收费查询模块? 该模块是对应收金额、已收金额、补助金额、欠费金额的查询。
查询可按年级查询,可按班级查询,也可以按学号或者姓名单个查询。
2.2.3.4 数据中心模块? 数据中心模块主要是对收费数据汇总、备份、导入、导出。
2.2.4 系统的技术特点及运行环境? 采用EXCEL VBA + ACCESS 2003 安全性高、可操作性好。
? 免安装、体积小,便于携带。
? 系统开发与运行环境开发环境:开发语言:Excel VBA数据库:Microsoft Access 2003运行环境:安装有Microsoft Excel 2003 的Windows系列操作系统3 数据库设计3.1 ADO概述ADO是ActiveX Data Objects的缩写,又称为OLE自动化接口,中文名称为动态数据对象,是目前Microsoft通用的数据访问技术。
ADO是为OLE DB设计的,而OLE DB则是由ODBC延伸出来的COM组件,是一个便于应用的底层接口。
使用ADO 以后,OLE DB的使用变得更加简单。
通过ADO可以访问多种类型的数据库数据,其中就包括Excel文件。
ADO具有以下特点:? 将原本复杂的数据库程序开发编程轻松容易的工作,除了具有传统数据库开发环境的优点外,还增加了对数据库修改和维护的功能。
? 几乎兼容所有的数据库系统,并为他们都提供了相同的处理界面供程序设计人员使用。
? 能跨多种不同的程序语言开发环境,并且提供了类似的设计方式,方便了用户的使用。
? 几乎可以在任何支持COM(Component Object Model,组件对象模型)和OLE(对象链接和嵌入)的服务器端操作系统上使用。
3.2 利用ADO访问数据库每个数据库连接只能服务于一段VBA程序,如果有其他的程序或其他的人需要数据库的服务就需要建立新的数据库连接。
因此,ADO提供了控制连接通断的方法,以此保证每个连接都可以尽快地利用数据库的服务。
Excel中若要访问数据库,必先建立与数据库的连接,为了创建数据库与Excel的连接,首先必须要引用ADO对象库。
几个需要引用的项目如下(版本随机器上安装的版本有所变化,如你机器里面是其他版本,那么就引用该版本):1) Microsoft ADO ext2.8 for DDL and security2) Microsoft active data objects (multi-dimensional) 2.8 library3) Microsoft active data objects recordset 2.8 library4) Microsoft active data objects 2.8 library5) Microsoft jet and replocation objects 2.8 library引用方法:在Excel VBA编辑器窗口中,单击【工具】菜单中的【引用】命令,打开【引用-VBAproject】对话框,勾选相应的项目即可,如图:图3. 1添加引用ADO的责任被划分为3个部分。
以下分别说明。
? 建立数据库连接(Connection)在ADO中表示数据库连接的对象叫做Connection。
该对象的Connectionstring属性就表示目标数据库的地址,以下代码将与某个Access数据库建立连接。
Dim Mycon as adodb.con nection’申明connection对象类型的变量名为Mycon Set Mycon =new adodb.connection‘生成一个新的connection对象,将存储到Mycon变量中Dim constr as stringConstr=”provider=microsoft.jet.oledb.4.0;datasource=”+ “thisworkbook.path&”\csh收费系统.mdb””‘指定数据库位置Mycon.connectionstring=constrMyco n.open‘连接Mycon.close‘断开? 执行SQL命令(Command)数据库连接建立之后,需要向数据库传递相应的命令,以实现操作数据库的目的。