学生信息管理系统之优化篇 --02
前言:学生信息管理系统,逐渐的弄完第一遍了。感觉进度上的把控,还算可以。用了四到五天的时间,敲完了第一遍。今天下午算是,开始一点点的优化。下面将介绍,都做了哪些优化。
目录
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) 来判断,是否是最后一条数据确保了不会报错。但是这个代码需要要写很多遍,有那位大神会把这个过程抽象成一个过程或者一个函数。可以在哪用,直接调用模块的过程,就不用繁琐的写很多代码 了。有会的,请慷慨的评论到下面。具体的方法,或者推荐资料。
欢迎访问csdn的博客:
https://blog.csdn.net/kangshihang1998?spm=1010.2135.3001.5343