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

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

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值