学生信息管理系统之改进
2014-07-25 20:28
288 查看
当学生信息管理系统接近尾声时,突然发现自己有好多收获,拿出来晒晒别在我这里发霉了。
1、
在这个窗体中当姓名输入完成后按下tab键到性别时,能自动出现“男”这个默认选项。
2、
检查班号为空和检查班号是不是数字,这两段代码的相对位置关系的调整。
源代码中是对每个文本框都进行一遍是否为空的检查,然后又反过头来查看班号文本框的内容是不是数字,这样就会有一个麻烦。假如用户在第一个文本框的内容是空,最后一个文本框也是空,其他的都是有效内容。这样第一次提醒用户输入第一个文本框,然后用户输入了无效字符,却没有在第一个文本框提示错误,而是最后一个提示错误。当用户输入最后一个文本框后,你又告诉用户第一个输入的不符合要求,还让用户返回头再输。
本着全心全意为人民服务的心态,我认为在软件设计中,当要对多个控件进行多个功能项的检查时,可以按照控件的顺序来逐个检查,而不是按照功能项来检查。
3、with块的使用
当对同一个控件进行多个连续的操作时,利用with块可以减少代码量。
4、窗体的font属性
当对窗体上多个控件要求统一字体时,可以在添加窗体前,先设置窗体的font属性,这样再添加控件后,字体自然就统一了。一定程度减少了我们的工作量。
5、要求输入年份,要能自动添加“-”而且具备一定的纠错能力。
6、修改类型的窗体添加错误处理。原因是当从来没有添加过数据时就直接点击修改数据当然不可避免会出现记录集为空的错误。
7、selstart和sellength的使用
例如:
8、
查询时,多个查询项时,注意把没有选择的查询项后面的文本框清空。
9、
这个窗体中,有一个值得思考的问题,就是如何防止listbox控件产生重复项。我解决的方法是不加限制的添加选项,然后编写一个过程,这个过程用来判断和删除list控件里的重复项。由于两个listbox控件都需要判断,在这里只列举后一个。
10、把文本框和选择框的内容清空,我们可以把这个功能封装起来。每次需要时仅一条语句就OK了,还是比较省时省力的。这个函数定义在标准模块里面。
11、在学生信息管理系统中,combobox控件一定不能手动输入,否则会引起数据库中数据不一致。解决办法
(1)style属性设置成2-Dropdown list
(2)在combobox的keypress事件中,设置keyASCII=0
1、
在这个窗体中当姓名输入完成后按下tab键到性别时,能自动出现“男”这个默认选项。
<span style="font-size:18px;">'当姓名框失去焦点,并且性别框后面的文本框内容为空时,性别框自动出现默认选项。</span>
<span style="font-size:18px;">Private Sub txtName_LostFocus() If txtBornDate.Text = "" And ComboClassno.Text = "" And _ txtTel.Text = "" And txtRuDate.Text = "" And _ txtComment.Text = "" And txtAddress.Text = "" Then comboSex.Text = "男" End If End Sub</span>
2、
检查班号为空和检查班号是不是数字,这两段代码的相对位置关系的调整。
源代码中是对每个文本框都进行一遍是否为空的检查,然后又反过头来查看班号文本框的内容是不是数字,这样就会有一个麻烦。假如用户在第一个文本框的内容是空,最后一个文本框也是空,其他的都是有效内容。这样第一次提醒用户输入第一个文本框,然后用户输入了无效字符,却没有在第一个文本框提示错误,而是最后一个提示错误。当用户输入最后一个文本框后,你又告诉用户第一个输入的不符合要求,还让用户返回头再输。
本着全心全意为人民服务的心态,我认为在软件设计中,当要对多个控件进行多个功能项的检查时,可以按照控件的顺序来逐个检查,而不是按照功能项来检查。
3、with块的使用
当对同一个控件进行多个连续的操作时,利用with块可以减少代码量。
4、窗体的font属性
当对窗体上多个控件要求统一字体时,可以在添加窗体前,先设置窗体的font属性,这样再添加控件后,字体自然就统一了。一定程度减少了我们的工作量。
5、要求输入年份,要能自动添加“-”而且具备一定的纠错能力。
'文本框的输入事件。
Private Sub txtBornDate_KeyPress(KeyAscii As Integer)
’如果正好是输入了一个年份(四个数字),如2000。那么判断四个字符是不是数字并且输入的年份小于当前年份。当满足要求后
’自动在年份后面加上“-”。 If (Len(Trim(txtBornDate.Text)) = 4) Then If IsNumeric(Trim(txtBornDate.Text)) And Val(Trim(txtBornDate.Text)) < Year(Now) Then txtBornDate = txtBornDate & "-" txtBornDate.SelStart = 6 Else MsgBox "年份输入错误,请重新输入!", TiShi, JingGao txtBornDate.SetFocus txtBornDate.SelLength = 4 End If End If '如果输入了两位数的月份,这时总的字符为7个,输入的月份是数字并且大于0小于13,那么直接在月份后面加上“-”。 If (Len(Trim(txtBornDate.Text)) = 7) Then If IsNumeric(Mid(Trim(txtBornDate.Text), 6, 2)) And _</span>
<span style="white-space:pre"> </span>Val(Mid(Trim(txtBornDate.Text), 6, 2)) > 0 And _
Val(Mid(Trim(txtBornDate.Text), 6, 2)) < 13 Then txtBornDate = txtBornDate & "-" txtBornDate.SelStart = 9 Else MsgBox "月份输入错误!", TiShi, JingGao txtBornDate.SetFocus txtBornDate.SelStart = 5 txtBornDate.SelLength = 2 End If End If ’如果输入了两位日期,这时文本框共10个字符。判断输入的日期是否是数字并且数字大于0小于32。 If (Len(Trim(txtBornDate.Text)) = 10) Then If IsNumeric(Mid(Trim(txtBornDate.Text), 9, 2)) And _
<span style="white-space:pre"> </span>Val(Mid(Trim(txtBornDate.Text), 9, 2)) > 0 And _
<span style="white-space:pre"> </span>Val(Mid(Trim(txtBornDate.Text), 9, 2)) < 32 Then Else MsgBox "日期输入错误!", TiShi, JingGao txtBornDate.SetFocus txtBornDate.SelStart = 9 txtBornDate.SelLength = 2 End If End If End Sub</span>
6、修改类型的窗体添加错误处理。原因是当从来没有添加过数据时就直接点击修改数据当然不可避免会出现记录集为空的错误。
Err_Deal: If Err.Number = 3021 Then MsgBox "出现错误,请确认您已经添加过学籍信息", vbOKOnly + vbExclamation, "警告" MSOK = False Exit Sub Else MsgBox "出现异常错误,请重新进入!", vbOKOnly + vbExclamation, "警告" MSOK = False Exit Sub End If End Sub
7、selstart和sellength的使用
例如:
If (Len(Trim(txtRuDate.Text)) = 10) Then If IsNumeric(Mid(Trim(txtRuDate.Text), 9, 2)) And Val(Mid(Trim(txtRuDate.Text), 9, 2)) > 0 And _
<span style="font-family: Arial, Helvetica, sans-serif;"> Val(Mid(Trim(txtRuDate.Text), 9, 2)) < 32 Then</span>
txtRuDate = txtRuDate & "-" Else MsgBox "日期输入错误!", TiShi, JingGao txtRuDate.SetFocus txtRuDate.SelStart = 9 txtRuDate.SelLength = 2 End If End If
8、
查询时,多个查询项时,注意把没有选择的查询项后面的文本框清空。
Private Sub Check1_Click(Index As Integer) If Check1(0).Value = False Then txtSID.Text = "" End If If Check1(1).Value = False Then txtName.Text = "" End If If Check1(2).Value = False Then txtClassNo.Text = "" End If End Sub</span>
9、
这个窗体中,有一个值得思考的问题,就是如何防止listbox控件产生重复项。我解决的方法是不加限制的添加选项,然后编写一个过程,这个过程用来判断和删除list控件里的重复项。由于两个listbox控件都需要判断,在这里只列举后一个。
Private Sub CheckSelect() Dim i As Integer Dim j As Integer ’通过二重循环,找出重复项。注意这里removeitem事件不能删除i,只能是j。 For i = 0 To listSelectCourse.ListCount - 1 For j = i + 1 To listSelectCourse.ListCount - 1 If listSelectCourse.List(i) = listSelectCourse.List(j) Then listSelectCourse.RemoveItem j End If Next j Next i End Sub
10、把文本框和选择框的内容清空,我们可以把这个功能封装起来。每次需要时仅一条语句就OK了,还是比较省时省力的。这个函数定义在标准模块里面。
Public Sub QingKong(CT As Form) Dim ctr1 As Control For Each ctr1 In CT.Controls If TypeOf ctr1 Is TextBox Then ctr1.Text = "" End If Next Dim ctr2 As Control For Each ctr2 In CT.Controls If TypeOf ctr2 Is ComboBox Then ctr2.Text = "" End If Next End Sub调用的方法也很简单,调用代码如下:
Call QingKong(Me)
11、在学生信息管理系统中,combobox控件一定不能手动输入,否则会引起数据库中数据不一致。解决办法
(1)style属性设置成2-Dropdown list
(2)在combobox的keypress事件中,设置keyASCII=0
相关文章推荐
- C语言的指针、链表的原理和各类操作以及学生信息管理系统改进报告
- 关于学生信息管理系统的改进问题
- 笨拙的学生信息管理系统,以后会继续改进的
- 学生信息管理系统第一次验收后的改进
- 学生信息管理系统系列三:验收时的改进
- 2017年3月24日,周结(五),学生信息管理系统继续改进以及一些框架的使用
- 关于学生信息管理系统的改进问题
- 学生信息管理系统简单模拟(C语言实现)
- 【原创视频教程】学生信息管理系统1--登陆
- [VB.NET源码]学生信息管理系统
- 【原创视频教程】学生信息管理系统4--成绩添加
- 【原创视频教程】学生信息管理系统5--学员成绩管理
- 【原创视频教程】学生信息管理系统3--学员添加
- 文博学费管理系统简介+适用于各类学校的学生收费管理+信息统计
- 【原创视频教程】学生信息管理系统6--学员信息管理(完结篇)
- 命名规范不只是增加可读性!(实例:asp.net C#学生信息管理系统)
- 【原创视频教程】学生信息管理系统5--学员成绩管理
- 【原创视频教程】学生信息管理系统1--登陆
- 【原创视频教程】学生信息管理系统6--学员信息管理(完结篇)
- 学生信息管理系统