我是在结项几天后才发现学生信息管理系统存在好多纰漏的,对当初仅仅实现了基本功能就草草结项的知足心里感到很惭愧,在这里对发现的问题一一做出解答。
纰漏一:当在一个文本框中输入完之后,按Table键切换到的往往不是下一个,还得用鼠标进行切换,降低了输入的效率。
解决方法:将所有文本框和按钮的TableIndex值设为由0开始连续的值
纰漏二:设置年级课程时,CmdSet按钮每执行一次Click事件,listAllcourse所加载的课程不会得到更新,而是在原有基础上继续加载,产生了好多重复的课程,对选择课程造成了麻烦。
解决方法:在开始加载课程的代码前添加 listAllcourse.Clear代码,使原先加载的课程清除,重新加载课程。
纰漏三:设置年级课程时,如果选择添加的课程与已选的重复,还会被添加进去,造成了所选课程的重复。
解决方法:验证是否重复,若重复,则退出添加。如果运行出错,请用Trim()去掉等号两边的空格。
纰漏四:当打开多个窗体时,因窗体重叠想找到原来打开的窗体很难。状态栏也没有准确标明状态
解决方法:在frmMain窗体的菜单按钮的子窗体加载代码下填写两句句
纰漏五:千万不要忘了将确认按钮的Default设为True,即将键盘的ENTER键设为了“确认添加”或“确认”键;将取消按钮的Cancel设为True,即将键盘的Esc键设为了”取消”或”退出”键这样可以大大提高工作效率。
纰漏六:不知同学们注意到没,在添加窗体时,只能添加一条记录,当想再次添加时必须先按“取消添加”,然后再重新加载此窗体,才能添加下一条记录。
解决方法:我为每个添加窗体都添加了“继续添加”按钮。然后添加了相应代码,同时去掉每个窗体确认添加代码中的Me.Hide或Unload me代码,在这里以“添加课程信息”窗体为例
代码如下:
纰漏七:在填写班级信息时,一个教室不可能有两个班级占用,所以教室编号不能与已填教室编号重复;一个班级不可能有两个班号,所以班级不能与一天的班级重复;一个班级不可能有两个班号,所以班号不能与已填班号重复重复。而给出的源码只验证了班号是否重复,并没有验证年级和教室是否重复。
解决方法:见下图
纰漏八:出生日期一定要早于入学日期,
解决方法:DateDiff("yyyy",CDate(txtBorndate),CDate(txtRudate) + 7) > 0,我在这里限定一个小孩至少7岁以后才能升入初中,设计者可以根据实际情况自行设定。
纰漏九:由于程序中的查询语句都没有加入order By子句,导致查询得到的记录集显示出来后没有按照一定的顺序,显得很乱。
解决方法:在必须显示的记录集的查询语句中加上orderby 子句,在这里以添加信息窗体为例
代码如下:
txtsql = "select * from class_Info order by class_no"
Set mrc = Executesql(txtsql,MsgText)
While (mrc.EOF = False)
comboClassno.AddItem mrc!class_no
mrc.MoveNext
Wend
mrc.Close
代码如下:
txtsql = "select * from student_Info where class_NO = '" & comboClassno.Text & "'" & " order by student_ID"
Set mrc = Executesql(txtsql,MsgText)
While (mrc.EOF = False)
comboSID.AddItem mrc!student_ID
mrc.MoveNext
Wend
mrc.Close
纰漏十:修改学籍信息班号没有加载到comboClassno中,解决方法参照添加学籍信息窗体。
解决方法:见下图
系统中还存在许多小问题,例如修改窗体处于浏览记录时,更新数据和取消修改数据按钮应该是不能使用的;添加学籍信息时姓名不能为数字;若限制用户在comBox输入内容,可将comBox的style属性改为2-Dropdownlist。
这次做了学生信息管理系统我才发现,做一个完美的程序好难,只能不断的趋于完美。