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

举报
ksh1998 发表于 2021/12/29 22:14:35 2021/12/29
【摘要】 前言:学生信息管理系统,逐渐的弄完第一遍了。感觉进度上的把控,还算可以。用了四到五天的时间,敲完了第一遍。今天下午算是,开始一点点的优化。下面将介绍,都做了哪些优化。 目录 EOF  and BOF : 日期格式: 文本框判断       是否为空     &nbs...

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

目录

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) 来判断,是否是最后一条数据确保了不会报错。但是这个代码需要要写很多遍,有那位大神会把这个过程抽象成一个过程或者一个函数。可以在哪用,直接调用模块的过程,就不用繁琐的写很多代码 了。有会的,请慷慨的评论到下面。具体的方法,或者推荐资料。

文章来源: kangshihang.blog.csdn.net,作者:康世行,版权归原作者所有,如需转载,请联系作者。

原文链接:kangshihang.blog.csdn.net/article/details/99709021

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。