学生信息管理系统——终

开心!为什么?因为这个项目结束了。惭愧!为什么?因为这个项目拉的时间不是一般的长,来看看多久:2018年8月22日~2018年11月18日。怎么样?时间不短吧!我对自己真是服了!接近尾声之前,我又做了些什么呢?总结,没错,就是总结,主要包括优化和自我的感受!

接下来先看一下优化总结:

问题一:限制输入字符(比如:姓名、学号,电话号码)

姓名:

Private Sub txtSID_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii 
        Case Is < 0, &H20, &H8 
    Case Else 
        KeyAscii = 0 
        MsgBox “姓名只能输入汉子” 
    End Select 
End Sub

学号、电话号码:

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 48 To 57 '只能输入数字
        Case 65 To 90 '只能输入大小写字母
        Case 97 To 122 ' 只能输入退格
        Case 8 '只能输入退格
        Case Else
        KeyAscii = 0
    End Select
End Sub       

或:

'判断是否为数字
    If Not IsNumeric(Trim(txtSID/txtTel.Text)) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        txtSID/txtTel.SetFocus
        Exit Sub
    End If

问题二:ComboBox能选的,不能修改。例如性别的选择的限制:

Private Sub comboSex_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
End Sub

其中,KeyAscii的使用,主要是拦截判断键盘输入的键值,比如,只允许输入数字,就可以在文本框的KeyPress中输入:

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0;(keyAscii=0表示:取消本次输入的字符

问题三:日期逻辑(出生日期与入学日期)

我们需要添加日期控件,具体方法如下:

第一步:Crtl+T 打开部件找到Microsoft Windows Common Controls-2 6.0 勾选后点击应用。

第二步;在控件内选择日期控件,双击:

第三步:设置出生日期控件和入学日期控件名称分别为:DTPBorndate 和 DTPRudate,这里的出生日期一定是小于入学日期的;

DTBornDate.CustomFormat = "yyyy.mm.dd"
DTRuDate.CustomFormat = "yyyy.mm.dd"            
'检验出生和入校时间的关系
If DTBornDate.Value > DTRuDate.Value Then
    MsgBox "出生日期必须早于入校日期", vbOKOnly + vbExclamation, "警告"
    Exit Sub
End If
            
'给控件变量赋初值
DTBornDate.MaxDate = Date       '今天的日期
DTRuDate.MaxDate = Date         '今天的日期
            
'判断时间
If DTBornDate.MaxDate < DTBornDate.Value Then
    MsgBox "根据您填写的出生日期,您还没有出生!", vbOKOnly + vbExclamation, "警告"
    DTBornDate.SetFocus
    DTBornDate.Value = ""
    Exit Sub
End If
            
If DTRuDate.MaxDate < DTRuDate.Value Then
    MsgBox "根据您填写的入校日期,您还没有入校!", vbOKOnly + vbExclamation, "警告"
    DTRuDate.SetFocus
    DTRuDate.Value = ""
    Exit Sub
End If

问题四:成绩不合理

Private Sub txtResult_Change()
On Error Resume Next        
If Val(Trim(txtResult.Text)) > 120 Then
    MsgBox "输入数字过大,请重新输入!"
    txtResult.Text = ""
End If
End Sub

加上On Error Resume Next语句,我们在某处加上On Error Resume ,Next这条语句后,随后的程序即便出现"运行时错误"时,也不会显示"出错信息",并且会继续运行下去.

以上就是在优化的过程中遇到的问题,可以说是相当长知识了,项目主要围绕“增、删、改、查”四个方面对不同的内容进行展开,在进行这个项目的起初,自己只是会敲代码,能够理解的不足20%,这段时间下来,通过调试、优化,自己对代码的理解也在潜移默化中提高,虽然还是有些不懂,但自我认为已经满足“二八定律”中的“八”了,自己也是很是欣喜,对自己在这条路上走下去也更加的有信心。

自我感受:做什么之前,自己总是会畏惧,但是终究还是要做,做了之后就发现,也就这样子,再难还能怎么样,事情有大有小,万变不离其宗,万事开头难,先开头,接下来去做就好了。

猜你喜欢

转载自blog.csdn.net/zql_LV1314/article/details/84260186