zoukankan      html  css  js  c++  java
  • 学生信息管理系统-错误‘3021’

    这个错误算是发生最多的一个了。

                                                                           

    其一:是在打开修改XX信息的窗体时都会遇见的错误,经网上查询得知是因为,Recordset里没有数据的原因,当首先添加一组信息后,就可以打开修改修改了,但这并没有解决根本问题。我是这样修改的:写一组判断语句加frmMain的菜单项单击事件中。

    Private Sub modifycinfoMenu_Click()
    
        txtSQL = "select * from class_Info"
        Set mrc = ExecuteSQL(txtSQL, MsgText)   '得到class表,并显示
    
        '判断记录是否为空,如果为空弹出提示框,确认后弹出添加信息窗体
        If mrc.RecordCount = 0 Then
            MsgBox "记录为空,请先添加!", vbOKOnly + vbExclamation, "警告"
            mrc.Close
            Set mrc = Nothing
            frmAddclassinfo.Show
            Exit Sub
        Else
            frmModifyclassinfo.Show
        End If
    End Sub
    
    Private Sub modifycourseMenu_Click()
    
        txtSQL = "select * from course_Info"
        Set mrc = ExecuteSQL(txtSQL, MsgText)   '得到course表,并显示
    
        '判断记录是否为空,
        If mrc.RecordCount = 0 Then
            MsgBox "记录为空,请先添加!", vbOKOnly + vbExclamation, "警告"
            mrc.Close
            Set mrc = Nothing
            frmAddcourseinfo.Show
            Exit Sub
        Else
            frmModifycourseinfo.Show
        End If
    End Sub

    其它几个做类似修改即可。


    其二:是在删除数据的时候,删除两条以上的记录时不会出现错误,但在删除最后一条记录时便会发生错误。

    1、利用错误处理语句,(前提:虽然点击删除按钮后出错,但是重新打开时记录已经被删除了)

    Private Sub deleteCommand_Click()
    On Error GoTo d_Err
        myBookmark = mrc.Bookmark         '做标记
        str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
    
        If str2$ = vbOK Then
              .
              .
              .
        End If
    d_EXIT:
             Exit Sub
             Unload Me
    d_Err:
        txtSID.Text = ""                 ’把各文本框清空(可选)
        txtName.Text = ""
              .
              .
              .
        MsgBox "记录为空了。", vbOKOnly + vbExclamation, "警告"
             GoTo d_EXIT
    
    End Sub

    法2、编写判断语句判断是否为最后一条记录。

    Private Sub deleteCommand_Click()
        myBookmark = mrc.Bookmark
        str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
        
        If str2$ = vbOK Then
            mrc.MoveNext
    
                      ’判断是否为最后一条记录
            If mrc.EOF Then
                mrc.MovePrevious
                mrc.MovePrevious
                If mrc.BOF Then       ’若是 则删除,避免执行语句call viewdata
                    mrc.MoveNext
                    mrc.Delete
                    MsgBox "记录已经为空,,", vbOKOnly + vbExclamation, "警告"
                    Unload Me
                Else
                    mrc.MoveFirst
                    myBookmark = mrc.Bookmark
                    mrc.MoveLast
                    mrc.Delete
                    mrc.Bookmark = myBookmark
                    mrc.Close
                    
                    txtSQL = "select * from class_Info"
                    Set mrc = ExecuteSQL(txtSQL, MsgText)
                    mrc.MoveLast
                    Call viewData
                End If
            Else
                myBookmark = mrc.Bookmark
                mrc.MovePrevious
                mrc.Delete
                mrc.Bookmark = myBookmark
                mrc.Close
                    
                txtSQL = "select * from class_Info"
                Set mrc = ExecuteSQL(txtSQL, MsgText)
                mrc.MoveLast
                Call viewData
            End If
        Else
            mrc.Bookmark = myBookmark
            Call viewData
        End If
    
    End Sub

    其它窗体里面的删除按钮代码做类似修改即可。

  • 相关阅读:
    Java创建多线程的方法
    Spring Cloud 学习笔记 来自csdn
    Java线程退出
    Java线程的中断与插入
    Java守护线程
    Linux安装jdk
    内部类
    枚举,包类型
    jenkins
    设计模式之装饰者模式
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3249373.html
Copyright © 2011-2022 走看看