学生信息管理系统优化(二)

         优化尚未结束,今天我们继续!

      之前和大家分享了几个关于学生管理系统优化的方法!今天还有一些方法继续分享给大家!

1.查询修改信息窗体

     (1)在你进入数据查询修改的窗体的时候,如果你没有数据的时候,系统应该会给你提示,没有数据是否添加!代码如下:

  If mrc.EOF = False Then
        mrc.MoveFirst
        Call viewData
        myBookmark = mrc.Bookmark
    Else
        str1$ = MsgBox("没有纪录,是否添加记录!", vbOKOnly + vbExclamation, "警告")
        If str1$ = True Then
           frmAddcourseinfo.Show
           Unload Me
        End If
        Exit Sub
    End If
     只有这些还是不够的,你需要在主窗体的代码段输入:

On Error Resume Next

     这行代码的意思就是  ,当一条出现问题的时候,程序运行下一条语句!

    (2)在修改信息窗体有一个删除记录的按钮,在你删除最后一条信息记录的时候,程序会给你报错!所以我们需要在程序删除最有一条指令的时候,进行一个判断,是否删除最后一条记录,删除后没有记录就进入信息添加的窗口!代码如下:

If mrc.RecordCount = 1 Then    '表中只剩一条数据
         str1$ = MsgBox("这是最后一条记录,是否删除?", vbOKOnly + vbExclamation, "警告")
         If str1$ = vbOK Then
           mrc.Delete      '删除数据
           MsgBox "数据为空,是否添加?", vbOKOnly + vbExclamation, "警告"
           frmAddresult.Show
           frmModifyresult.Hide
         End If
         Else
   (3)还有一个问题,就是你在修改信息的时候,如果你修改学号,改成之前有的学号,系统是会告诉你你输入的学号是重复的学号,你重新输入,但是你点击确定之后,你会发现修改的那条记录没有了,而在你不修改学号,改别的信息的时候,有数据库里还有之前的学号,它也会给你报错,之后你修改的信息也会消失!

    这个问题出现的主要原因就是,书上写的代码是在你修改数据之前,先把数据库的数据删除,在你修改之后,他会输入一条新的数据!知道了原因,你就可以按照逻辑,解决问题了!先上代码:

If (txtSID.Text <> asid) Then
          
        txtSQL = "select*from student_info where student_ID='" & Trim(txtSID.Text) & " '"
        Set mrcc = ExecuteSQL(txtSQL, MsgText)     '有问题
        
        If mrcc.EOF = False Then
           MsgBox "学号重复,请重新输入!", vbOKOnly + vbRetryCancel, "警告"
           mrcc.Close
           txtSID.SetFocus
        Else
              
          If Not IsDate(txtBorndate.Text) Then
              MsgBox "出生时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
              txtBorndate.SetFocus
          Else
              txtBorndate = Format(txtBorndate, "yyyy-mm-dd")
        
            If Not IsDate(txtRudate.Text) Then
              MsgBox "入校时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
              txtRudate.SetFocus
            Else
              txtSQL = "select * from student_info"
              Set mrc = ExecuteSQL(txtSQL, MsgText)
              mrc.Bookmark = myBookmark
              mrc.Delete
              txtRudate = Format(txtRudate, "yyyy-mm-dd")
               
                  mrc.AddNew
                  mrc.Fields(0) = Trim(txtSID.Text)
                  mrc.Fields(1) = Trim(txtName.Text)
                  mrc.Fields(2) = Trim(comboSex.Text)
                  mrc.Fields(3) = Trim(txtBorndate.Text)
                  mrc.Fields(4) = Trim(ComboClassno.Text)
                  mrc.Fields(5) = Trim(txtTel.Text)
                  mrc.Fields(6) = Trim(txtRudate.Text)
                  mrc.Fields(7) = Trim(txtAddress.Text)
                  mrc.Fields(8) = Trim(txtComment.Text)
                  mrc.Update
                  mrc.Bookmark = myBookmark
                  Call viewData
                  
                  MsgBox "修改成绩成功!", vbOKOnly + vbExclamation, "警告"
                   
                  firstCommand.Enabled = True
                  previousCommand.Enabled = True
                  nextCommand.Enabled = True
                  lastCommand.Enabled = True
                  txtSID.Enabled = True
                  
                  txtName.Enabled = False
                  comboSex.Enabled = False
                  txtBorndate.Enabled = False
                  ComboClassno.Enabled = False
                  txtRudate.Enabled = False
                  txtTel.Enabled = False
                  txtAddress.Enabled = False
                  txtComment.Enabled = False
                  mcclean = True
                  End If
                End If
            End If
                
            Else
            If Not IsDate(txtBorndate.Text) Then
               MsgBox "出生时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
               txtBorndate.SetFocus
           
           Else
               txtBorndate = Format(txtBorndate, "yyyy-mm-dd")
                 If Not IsDate(txtRudate.Text) Then
                    MsgBox "入校时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
                    txtRudate.SetFocus
                Else
                  txtRudate = Format(txtRudate, "yyyy-mm-dd")
                 
                  mrc.Fields(0) = Trim(txtSID.Text)
                  mrc.Fields(1) = Trim(txtName.Text)
                  mrc.Fields(2) = Trim(comboSex.Text)
                  mrc.Fields(3) = Trim(txtBorndate.Text)
                  mrc.Fields(4) = Trim(ComboClassno.Text)
                  mrc.Fields(5) = Trim(txtTel.Text)
                  mrc.Fields(6) = Trim(txtRudate.Text)
                  mrc.Fields(7) = Trim(txtAddress.Text)
                  mrc.Fields(8) = Trim(txtComment.Text)
                  mrc.Update
                  mrc.Bookmark = myBookmark
                  Call viewData
                  
                  MsgBox "修改成绩成功!", vbOKOnly + vbExclamation, "警告"
                   
                  firstCommand.Enabled = True
                  previousCommand.Enabled = True
                  nextCommand.Enabled = True
                  lastCommand.Enabled = True
                  txtSID.Enabled = True
                  
                  txtName.Enabled = False
                  comboSex.Enabled = False
                  txtBorndate.Enabled = False
                  ComboClassno.Enabled = False
                  txtRudate.Enabled = False
                  txtTel.Enabled = False
                  txtAddress.Enabled = False
                  txtComment.Enabled = False
                  mcclean = True
                  End If
                End If
          End If
          
End Sub

      这些代码虽然多,但是很多重复的,你只要是理解其中的逻辑的顺序就好了!那个asid就是你之前的学号,在修改完进行更新的时候,先让他进行判断,如果你修改后的学号与之前的学号不一样,就说明你修改的是学号,那就在和数据库的别的信息进行比较,继续惊醒下边的操作,但是如果你修改后的学号与之前的一样说明,你修改的是别的,那就直接修改,不用进行学号比较!

     其实还有一个比较简单的方法,就是在你要修改这条消息的时候,把书签定在这里,然后进行修改,直接更新数据,不需要把以前的数据删除,当你修改的学号重复或是别的信息有问题时,直接回到书签位置,这样你的信息也不会消失了!但是你需要修改一下SQL语句,在学号检验的时候,排除本条数据!大家感兴趣可以自己去试试!嘿嘿!

     在最后还是给大家一些小的提醒!

   (1)在输入出生日期,入校日期时一定要符合逻辑,出生日期早于入校日期!而且时间不能过早,要符合实际。这些问题只需要你在输入信息,添加数据的时候,进行一下比较判断就好了!

   (2)在使用Combo这个控件的时候,添加数据的时候,则需要选择它为只能选择,无法输入的模式,这个则只需要修改一下控件的Style属性就好了!

       

        这些就是我在优化学生信息管理系统遇到问题和解决方法,希望能给大家一些帮助,如果我写的哪里有问题,希望大家积极指出!以后有新的发现,我还会给大家分享!





评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值