学生信息管理系统——常见问题(二)

问题1:

    实时错误‘3021’:BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

    在敲学生信息管理系统时,应该很多人都遇到了这种情况:

    数据库中没有添加记录,但我们点击修改记录时,会出现如下提示:


    首先先说一下BOF和EOF的意思吧!因为只有知道错误是什么,我们才能对症下药......

    BOF和EOF 他们是记录集(recordset)对象的一种方法,BOF(before of file)是指记录集对象的指针指向第一个记录之前(不是第一条记录),EOF(end of  file)是指记录指针指向最后一个记录之后(不是最后一条记录)。使用这两个属性就可以使记录集浏览记录更加完善。如图:

    只有在上图中的情况下,BOF和EOF 他们才会 返回布尔值(True),否则返回(False),True为属性默认值。

    所以我们需要做的,就是当BOF或EOF为True时我们该怎么做......

    下面有三种解决办法:

    一、进行错误处理,错误处理的本质就是当遇到错误时,可以跳过该错误,直接进行下一步,以便于程序顺利进行!那么我们根据这个原理在程序中添加错误处理,程序便可迎刃而解!

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">Private Sub form_Load()
    Dim txtSQL As String
    Dim MsgText As String
    txtSQL = "select * from course_Info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
   
   On Error GoTo 1:
 
       mrc.MoveFirst
      Call viewData
       
        myBookmark = mrc.Bookmark '对当前记录进行标记
        mcclean = True '可编辑状态
   
    1:
   
        If Err = 3021 Then
          MsgBox "无记录!"
        End If
 end sub</span></span>


    二、根据上述原理,我们可以将代码稍作修改,不做错误处理,而是当程序遇到这种情况时,用一个if语句,让程序直接进行下一步即可,与上述方法异曲同工!

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">Private Sub Form_Load()
    Dim txtSQL As String
    Dim msgText As String
   
    txtSQL = "SELECT * FROM student_Info "
    Set mrc = ExecuteSQL(txtSQL, msgText) '得到临时表
   
 ’考虑无记录情况
    If mrc.EOF And mrc.BOF Then  ’一条IF语句充当错误处理,当无记录时,mrc.eof=true
                                  ’和mrc.bof=true两个条件同时满足!
        MsgBox "无记录!"
        frmAddinfo.show.Show’直接进行下一步,显示窗体
    Else
   
   
        mrc.MoveFirst
   
        Call viewData
       
        myBookmark = mrc.Bookmark '对当前记录进行标记
        mcclean = True '可编辑状态
   
   
    End If</span></span>


    那么,经过上述方法处理后,程序一旦遇到类似情况,就可直接提示“无记录”并运行下一步!

    三、这种方法和第二种方法类似,只是表现形式不同:当程序遇到这种情况时,用一个if语句,让程序直接进行下一步即可,与上述方法基本相同~

 

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;">Private Sub form_Load()
    Dim txtSQL As String
    Dim MsgText As String
    txtSQL = "select * from course_Info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    If mrc.RecordCount = 0 Then
        firstCommand.Enabled = False
        previousCommand.Enabled = False
        nextCommand.Enabled = False
        lastCommand.Enabled = False
        editCommand.Enabled = False
        updateCommand.Enabled = False
        cancelCommand.Enabled = False
        deleteCommand.Enabled = False
    Exit Sub
    End If
    
    txtCourseno.Enabled = False
    txtCoursename.Enabled = False
    comboCoursetype.Enabled = False
    txtCoursedes.Enabled = False
    
    txtSQL = "select * from course_Info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    mrc.MoveFirst
    Call viewData
    myBookmark = mrc.Bookmark
    mcclean = True
End Sub</span></span>


    很简单的一个问题,但我从中学到了不少知识......



问题2:

 

    弹出提示框:用户定义类型未定义


    调试定位到:Dim mrc As ADODB.Recordset

    解决方法:问题原因是未引用Microsoft ActiveX Data Objects 2.6 Library.

    引用即可.

 

 

    问题3:

    实时错误‘424’  要求对象

    这个问题解决方法是引用陈晓婵csdn博客:(学生信息管理系统系列一:问题总结

 


    遇到这个问题,查了一下发现可能是工程内的类名无效(简单的说就是将窗体名或控件名写错了)这个问题,但是找了找没有发现有什么错误的,那到底是哪出了错误了呢?还是先了解一下sbStatusBar.Panels(1).Text= "添加用户"是什么意思吧。

    StatusBar1是状态栏控件的名称;Panels(1).Text表示状态栏上第1个空格所显示的文本内容,Panels1)代表状态栏控件的第一个窗格;Format(Date, "\yyyymmdd\")这是调用格式函数Format,设置文本格式,Format函数可以将信息设置成你所需要的显示形式(格式)。

    应该怎么改呢?

    第一种办法:删除sbStatusBar.Panels(1).Text = "添加用户"或者将它注释掉

    第二种办法:新建form取名sbStatusBar,然后在这个窗体上新建个文本框取名Panels,并且文本框属性index1就可以了。

 

 


 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
学生信息管理系统是一个用来管理学生的基本信息和选课信息的系统。在数据结构,我们可以使用一些算法和数据结构来设计这个系统。在这个系统,我们需要考虑以下几个功能: 1. 添加学生信息:当有新的学生加入时,我们需要输入他们的姓名,班级,性别,学号等基本信息,并将其存储在系统。 2. 删除学生信息:当学生离开学校或者不再使用该系统时,我们需要删除他们的基本信息以及他们在选课系统的选课信息。 3. 添加课程信息:当有新的课程开设时,我们需要输入课程的名称,教师姓名,上课时间等信息,并将其存储在系统。 4. 删除课程信息:当课程不再开设或者不再使用该系统时,我们需要删除该课程的所有信息,使得在系统无法找到该课程的相关信息。 5. 修改学生信息:如果学生的基本信息发生变化,我们需要提供一个功能来修改他们的信息,例如修改班级或者联系方式。 6. 查询学生信息:我们需要提供一个功能来查询学生的基本信息和选课信息,以便管理员或教师能够查看学生的相关信息。 7. 查询课程信息:我们需要提供一个功能来查询课程的基本信息和选修该课程的学生信息,以便管理员或教师能够查看课程的相关信息。 以上是学生信息管理系统一些常见的功能和操作,我们可以使用合适的数据结构和算法来设计和实现这个系统。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值