学生信息管理系统之优化篇 --02

前言:学生信息管理系统,逐渐的弄完第一遍了。感觉进度上的把控,还算可以。用了四到五天的时间,敲完了第一遍。今天下午算是,开始一点点的优化。下面将介绍,都做了哪些优化。

目录

EOF  and BOF :

日期格式:

文本框判断

      是否为空

      是否是数字

全局进度:


EOF  and BOF :

    这个问题是,当数据没有数据的时候。在次进行操作会提醒,eof or bof 数据库没有数据。这问题的解决方案,是还是eof和bof本身来解决的。

概念:

      eof :游标的位置是否在最后一个 bof:游标的位置是否在第一个。根据这个的返回值,做一个判断就行了!

     viewData 过程代码

Public Sub viewData()
'判断是否是最后一条数据
    If Not (mrc.BOF = False And mrc.EOF = False) Then
        MsgBox "数据库目前已经是最后一条数据!", vbOKOnly + vbExclamation, "警告"
        txtClassno.Text = ""
        comboGrade.Text = ""
        txtDirector.Text = ""
        txtClassroom.Text = ""
    Else
        '否则显示数据
        txtClassno.Text = mrc.Fields(0)
        comboGrade.Text = mrc.Fields(1)
        txtDirector.Text = mrc.Fields(2)
        txtClassroom.Text = mrc.Fields(3)
    End If
End Sub

 游标位置判断:

'判断是否,数控是否还有数据
    If Not (mrc.BOF = False And mrc.EOF = False) Then
        
    Else
        mrc.MoveFirst
    End If

游标储存:

  '判断游标位置
    If Not (mrc.BOF = False And mrc.EOF = False) Then
      
    Else
    
        myBookmark = mrc.Bookmark '记录当前位置
    End If

日期格式:

模块内容:

·利用:LTrim()去空函数, len()统计个数函数,left ,right mid 的截取函数。实现,把日期字符串拆分。然后重新组合成需要的规格。

'转换日期函数
Public Function Fdata(txt As String) As String
    Dim a1 As String '接收转换内容
    Dim b1, b2, b3 As String '把接收的内容,进行分割
    a1 = LTrim(txt)
    If Len(a1) = 8 Then
        b1 = Left(a1, 4) '把接受内容按照日期格式,分割
        b2 = Mid(a1, 5, 2)
        b3 = Right(a1, 2)
        a1 = b1 & "-" & b2 & "-" & b3 '按照日期格式从新组合
    End If
    Fdata = a1
End Function

调用:注册学籍为例

'自动将日期转换
   txtBorndate.Text = Fdata(txtBorndate.Text)

文本框判断

      是否为空

            这个是需要提前在模块里创建一个,判断是否为空的函数。

           模块:      

'判断是否输入信息
 Public Function Testtxt(txt As String) As Boolean
     
     If Trim(txt) = "" Then
       Testtxt = False
       Else
       Testtxt = True
       End If
End Function

调用:还已注册学籍为例:

'判断是否输入家庭地址
    If Not Testtxt(txtAddress.Text) Then
        MsgBox "请输输入联系电话!", vbOKOnly + vbExclamation, "警告"
        txtAddress.SetFocus
        Exit Sub
    End If

 

      是否是数字

这个函数是系统保留的,不需要自己创建:

 '判断输入学号是否是数字
   If Not IsNumeric(Trim(txtSID.Text)) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub '退出过程
        txtSID.SetFocus '获取焦点
   End If

全局进度:

 

 最后还有一个小问题:这个问题就是,上面用 not(mrc.BFO =false and mrc.EOF=false) 来判断,是否是最后一条数据确保了不会报错。但是这个代码需要要写很多遍,有那位大神会把这个过程抽象成一个过程或者一个函数。可以在哪用,直接调用模块的过程,就不用繁琐的写很多代码 了。有会的,请慷慨的评论到下面。具体的方法,或者推荐资料。

posted @ 2019-08-18 21:03  康世行  阅读(39)  评论(0编辑  收藏  举报