学生信息管理系统-错误‘3021’

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

                                                                        学生信息管理系统-错误‘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

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

 

你可能感兴趣的:(管理)