基于VBA的高校学生管理测评卡的设计与实现
2012-10-12刘太甫户晓艳
刘太甫,户晓艳
(黄冈职业技术学院,湖北黄冈438002)
高职院校学生管理工作错综复杂,这是众所周知的。作为管理者,在日常工作中常常需要利用Excel处理庞大的数据,如对各种数据进行整理、分析、统计、汇总等,若不小心而弄错一个地方,还得从头再来。学生管理综合测评,是每所高校、每一学期都要进行的。很多决策者和管理者习惯使用Excel对学生测评情况进行管理。因是基于手工处理,所以存在工作量大、出错率高、保密性差、查找麻烦、检索缓慢等弊端。再加上时间一长,将会产生大量的文件和数据。这对查找、更新和维护带来不少困难,更不能准确地反映学生的综合素质,影响学生管理的效率。当然,高校可以购买完整的软件,但它的经费、功能、后期开发等各种问题,难以实现资源的有效利用。所以,笔者认为,为了能更好地利用Excel使各种数据一目了然,并能开发高效、安全、数据共享的信息化平台,设计出稳定、全面、有效而操作又简便的学生管理测评卡,则显得尤为重要。
Excel中除了函数外,还有一种宏语言VBA(VisualBasic for Aopplication)。它是MOS office软件内置的编程语言,具有功能强大、面向对象、使用简单、开发效率高的特点[1],为广大用户提供一个新的、更高层次的二次平台。通过宏语言编程技术,使各种数据进行规范管理、科学统计和快速查询。只需轻点鼠标,就能完成一整天甚至数天都难以完成的任务,从而让管理者从繁琐、重复、费时费工的办公事务中解脱出来,提高学生管理工作的效率和准确性。
1 拟定总体方案
根据学生管理测评的具体情况,拟定设计原则、目标、思路、功能划分方案。
1.1 设计原则
学生管理测评卡的开发,其目的是使学生管理工作进一步规范化、制度化和程序化。结合综合测评的要求,遵循的设计原则有:①开放式结构。②由不同层次的多模块的子系统构成。③可操作性强,并有一定的改进和更新功能,便于数据交流和信息共享,以适应将来的需求。④能够为用户提供充足的信息、快捷的查询和方便的计算,以满足实用性、可靠性和规范性。
1.2 设计目标
为了充分保证学生综合测评结果的准确性、真实性,并能有效地对学生综合素质,进行科学测评和管理分析,快速、方便地实现学生测评的录入、查询、检索、浏览、添加、删除等功能。这是设计的总体目标,并且要求管理者能通过测评的项目,实现本项目的动态性和自适应性。
1.3 设计思路
①制作学生管理测评卡,根据高校的办学方针、学生的专业特征,结合Excel VBA的功能,首先设计数据库。数据库是建立基本的数据信息,是对于一个给定的应用环境,构造最优的数据模式,使其能够有效地存储数据记录,并能满足各种应用需求[2]。②设计用户界面,对用户而言,界面的可用性和友好程度,直接影响着他们的情绪、检索效率等等。因此,设计出界限分明、路径明确、跳转方便、建立切实有效的帮助系统是很关键的。③程序代码编写,使用VBA编程的主要工作是事件驱动。设计消息响应的子程序:即设计当某对象发生某个事件(如:被单击)时所做出的响应。这种响应又称为事件过程。在事件过程中,编写代码来改变对象的属性或调用对象的某个方法,从而达到消息响应的目的[3]。
1.4 登录及功能划分方案
学生管理测评卡的主要功能模块包括三个方面:
(1)系统设置模块:主要对系统需要的基本数据进行录入、修改。
(2)综合测评模块:以设置的基本数据为基础,主要完成学生各项目的测评,对已经通过的项目进行测评计算。
(3)查询模块:能够查询到所有学生的基本情况,如班级考勤、学生基本信息,测评结果(如图1)。
图1 学生管理测评卡功能划分方案
2 方案实现
设计学生管理测评卡,利用VBA技术,借助数据库、代码的设计来实现。
2.1 技术方案选择
主要使用存取数据源的COM组件ADO(ActiveX data obiects)来方便地对数据库内容进行调取,采用VBA实现学生管理测评卡的页面功能设计,通过执行SQL命令,进行数据的录入、修改、删除、查询、统计、浏览等常规的数据库操作。
2.2 数据库设计
学生管理测评卡分别建立独立的管理信息数据库,数据库中包含各种基础信息数据表,各数据表间建立相应的关联,如图2所示。
图2 数据库设计示意图
2.3 模板代码设计
由于篇幅有限,笔者简单介绍学生管理测评卡中利用VBA编写的部分代码设计。
1.登录代码
Private Sub CommandButton1_click()
loginsucceeded=False
Me.Hide
End Sub
Private Sub CommandButton2_Click()
If TextBox1="hxy"And TextBox2="123456"Then
loginsucceeded=True
Me.Hide
UserForm2.Show
Else
MsgBox"密码不正确,请重试",,"登录"
End If
End Sub
2.基本信息输入代码
Private Sub CommandButton1_click()
xskq1.recordset.movefirst
现代生态农业研究所内,安徽科技学院科研处副处长张从宇和同事正分析农作物生长数据,“规模化、标准化、信息化是现代农业发展的方向,希望依托小岗的品牌,利用现代农业科技,推广全新的农业种养模式。”
do while not xskq1.recordset.eof
if lcase(xskq1.recordset.fields(0).value)=lcase(textbox1.text)then
textbox2.text=xskq1.recordset.fields(0).value
textbox3.text=xskq1.recordset.fields(1).value
textbox4.text=xskq1.recordset.fields(2).value
label5.caption="status:found......"
exit sub
xskq1.recordset.movenext
loop
textbox2.text=""
textbox3.text=""
textbox4.text=""
end sub
3.排名输入代码
Private Sub CommandButton1_click()
xszb2.recordset.movefirst
do while not xszb2.recordset.eof
if lcase(xszb2.recordset.fields(0).value)=lcase(textbox3.text)then
textbox1.text=xszb2.recordset.fields(0).value
textbox2.text=xszb 2.recordset.fields(1).value
ComboBox1=xszb 2.recordset.fields(2).value
labe20.caption="status:found......"
exit sub
end if
end sub
4.综合测评浏览代码
Private Sub CommandButton1_click()
zhcp1.recordset.delete
zhcp1.recordset.movenext
if zhcp1.recordset.eof then
zhcp1.recordset.moveprevious
end if
end sub
2.4 方案最终效果
运行高校学生管理测评卡,以不同用户登录,当密码输入正确后,进入主窗体,它包括基本信息、查询记录、综合测评三个子窗体。根据用户需求,点击相应信息。例如,可以点击基本信息,进入学生基本信息情况,页面效果如图3所示。它可以对数据库信息进行新增、删除和修改,也可以通过查询,查看学生记录。
图3 高校学生管理测评卡基本信息界面
3 方案讨论
利用Excel VBA的功能,依托存取数据库源COM组件的ADO,按照高校学生管理模式进行设计,使系统具备很好的开放性和可扩展性,能够高效地适应学生管理不断变化的需求,并充分体现VBA的优势。学生管理测评结果的准确性、可靠性和便捷性,是实现学生管理流程化、规范化和制度化的目标。基于VBA界面的用户端操作方便,查询、统计、添加、删除信息快捷,极大地提高学生管理工作效率。在利用Excel VBA设计学生管理测评卡时,要注意以下三个问题:
(1)编码的统一性。在利用VBA设计代码时,最好用电脑容易识别的数字符号、字母等代码表示出来。这样,更能促进系统内部数据的规范化管理,加快处理速度,节省存贮空间。
(2)代码的简化性。最好让代码长度缩短,易读易懂。当编写完一个程序后,运行结果是正确的,但程序运行得很慢,甚至有的程序等待几分钟后才运行出结果。这时就可以通过简化代码,提高程序的性能。比如:可以删除程序中无关的代码;可以将通用过程编写的代码改为用子过程来调用;可以将过程中的长对象用设置对象变量引用,以上都是简化代码的方法。
(3)代码的保护性。由于测评卡使用对象是教师和学生干部,如果学生能轻易地调取Excel VBA代码,掌握了验证原理,那么就可能根据代码原理修改数据,则造成信息的不真实和不准确性。因此,需要保护VBA代码,使其不能被查阅和篡改。可以使用VBA窗口菜单“工具”-“project属性”-“保护”来保护VBA代码。
[1]成必成,胡平建.高校学生工作中应用Excel的三种境界[J].和田师范专科学校学报,2012,29(3):170.
[2]VBA 语言的特点[EB/OL].http://wenku.baidu.com/view/f28109659b6648d7c1c74657.html.
[3]朱思峰.使用VB快速开发数据库应用系统[J].现代电子技术,2004,27(18).