设为首页 加入收藏

TOP

学生信息管理系统-错误‘3021’解决
2014-11-24 02:54:59 来源: 作者: 【 】 浏览:3
Tags:学生 信息 管理系统 错误 3021 解决
学生信息管理 系统-错误‘3021’解决
这个错误算是发生最多的一个了。
其一:是在打开修改XX信息的窗体时都会遇见的错误,经网上查询得知是因为,Recordset里没有数据的原因,当首先添加一组信息后,就可以打开修改修改了,但这并没有解决根本问题。我是这样修改的:写一组判断语句加frmMain的菜单项单击事件中。
[sql] 
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  

其它窗体里面的删除按钮代码做类似修改即可。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇学生信息管理系统---数据库的建立 下一篇SQL触发器(学生,课程表,选修表)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解智能指针? (2025-12-24 12:48:26)
·c++是否应避免使用普 (2025-12-24 12:48:23)
·如何通俗易懂学会 C+ (2025-12-24 12:48:21)
·在 C 语言函数中,如 (2025-12-24 12:19:41)
·C盘里面的AppData文 (2025-12-24 12:19:38)