吴丽彬
基于Excel的毕业证书查询系统
吴丽彬
毕业证书发放与查询是学校日常管理工作的重要内容,要想知道某位学生是哪一年毕业的,以及是否符合学校毕业证书发放条件,传统的查询方法是采用逐个工作簿查找的方式,工作量大且查询效率低,给教务管理人员的工作带来极大的不便。
经过研究发现,学生的毕业信息以及技能鉴定情况均采用Excel表格的形式存放,而Excel提供了强大的编程功能,笔者深入研究了Excel的功能,结合学校实际情况,开发出了毕业证书查询系统,使教务管理人员从机械的、重复的查询工作中解脱出来,提高了工作效率。本文详细介绍基于Excel的毕业证书信息查询系统的设计与制作方法。
本系统基于Excel2007技术设计开发。查询系统由原有的多个毕业生信息工作簿、多个技能鉴定情况工作簿和一个毕业证书查询系统工作簿构成,分别是查询系统的数据源和查询页。
(一)毕业证书查询系统查询页构成
查询页控件由六个ActiveX控件组成,分别是两个图片控件(对界面适当装饰)、两个标签控件(对系统适当说明)、一个文本框控件(用于输入学生姓名)以及一个命令按钮控件(调用查找程序)组成。
(二)毕业证书查询系统工作流程
在文本框控件中输入学生姓名,点击“查询”按钮,程序将会从“毕业生信息”文件夹中,依次将各个Excel工作簿打开,依次在各个工作表中查找此学生,如果查到了此学生,则程序会自动将此学生的信息复制到“毕业证书查询系统”中,直至“毕业生信息”文件夹下的所有工作簿查找完毕。如图1所示。
(一)程序设计语句准备
Option Explicit:该语句在模块级别中使用,强制显式声明模块中的所有变量。Option Explicit语句必须写在模块的所有过程之前。使用Option Explicit可以避免键入已有变量时拼错。
For Each……Next:针对一个数组或集合中的每个元素,重复执行一组语句。例如:For Each sht In Sheets……Next,目的是依次对工作簿中的各个工作表执行一组语句。
With语句:该语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在With控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。
On Error Resume Next:当加上该语句后,如果后面的程序出现“运行时错误”时,会继续运行,不中断,并且Err对象保存了“错误信息”,当Err对象等于0,表示未出错,如果不为0,则表示出错。
Do While条件语句……Loop:当条件语句为真时,执行一组语句,直至条件语句为假。
(二)数据源准备
新建一个文件夹,重命名为“毕业生信息”,将学校各届毕业生信息以及技能鉴定成绩的Excel文件复制到此文件夹中作为数据源。
(三)查询界面制作
在“毕业生信息”文件夹旁,新建一个启用宏的Excel工作簿,命名为毕业证书查询系统,打开此工作簿,将“sheet1”工作表重命名为“查询页”,如图2所示单击“开发工具”选项卡,单击“插入”,依次在ActiveX控件中选择两个图片控件、两个标签控件、一个文本框控件以及一个命令按钮控件,添加到“查询页”工作表中,依次右击两个标签控件,在出现的快捷菜单中选择“标签对象”→“编辑”,将两个标签显示的文字分别更改为“毕业证书查询系统”、“姓名:”,依次点击两个标签控件,在出现的快捷菜单中选择“属性”,如图3所示,将两个标签显示的字体更改为“楷体”,字号更改为“一号”,颜色更改为“红色”。右击命令按钮控件,在出现的快捷菜单中选择“命令按钮对象”→“编辑”,将按钮显示的文字更改为“查找”。单击文本框控件,在名称框中,将文本框控件重命名为“TextBox_姓名”,单击命令按钮控件,在名称框中,将命令按钮控件重命名为“Command-Button_查找”,接下来,将六个控件的布局适当调整,如图4所示。
图2
图3
图4
(四)程序代码
如图5,右击“查询页”工作表,在出现的快捷菜单中单击“查看代码”,出现了Visual Basic编辑器,在编辑器代码框中,输入以下代码:
‘此代码是单击“查找”命令按钮的执行程序
‘将文本框中的内容赋值给“姓名”变量
‘姓名不为空,才能调用“查找程序”
‘否则,如果姓名为空,则提示“请输入学生姓名”
'强制进行变量声明,养成编程好习惯
要查找的文件夹名称="毕业生信息"
'删除原有的查询数据,
'行号用于控制着复制得到的学生信息在《毕业证书查询系统》中粘贴信息的位置
行号=11
'定义用于存入文件夹的路径变量名称
'定义用于存放文件夹下excel文件的变量名称
图5
'循环语句,打开每一个文件夹下的每一个excel文件
'打开excel文件
'定义用于存放工作表表名的变量名称
'循环语句,对一个工作簿中的每一个工作表进行查找。
'查找学生
'如果工作表中找不到该学生,则跳过复制操作
'如果能查找到学生信息,则复制信息
'如果能查找到学生信息,则在《毕业证查询系统》工作簿中粘贴信息
'激活毕业证书查询系统工作簿
'将查询到的工作簿名称和工作表名称粘贴到《毕业证查询系统》工作簿中
'将查询到的学生信息粘贴到《毕业证查询系统》工作簿中
'清除剪贴板内容
'关闭已经打开工作簿,并且不保存,
如图6,单击“开发工具”选项卡,单击“宏安全性”,在信任中心的宏设置中,单击“启用所有宏”、“确定”。
关闭“毕业证书查询系统”工作簿后,再打开。
在文本框控件中输入学生姓名“张三”,点击“查询”按钮,程序将会把“毕业生信息”文件夹中的所有工作簿的所有工作表的有关“张三”的信息全部复制出来,查询速度快、效率高。
1.输入的姓名以及数据源中的姓名不允许有空格,否则将无法查找到该学生。
2.因为该程序只会查找与学生姓名一致的一条信息,所以如果同一个工作表中有出现同名的情况下,则需要对查寻到的结果进行仔细甄别。
3.如果数据源里有身份证号码,那么在文本框中输入身份证号码,则该程序会执行更准确。
4.查询系统下载地址:http://pan.baidu.com/s/1i52NeL3。
该毕业证书查询系统基于Excel技术开发,合理利用了毕业生信息的Excel表格,不需要专门的程序设计软件,只要熟悉Excel软件操作,就能快速制作查询页面和程序录入。制作简单,维护方便,查询快捷,是一个经济实用的毕业证书查询系统。
(作者单位:福建技师学院)
[1]Excel Home编.别怕,Excel VBA其实很简单[M].人民邮电出版社,2012.