加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

学生管理系统问题总结- 0.2

发布时间:2020-12-17 08:13:01 所属栏目:百科 来源:网络整理
导读:虽然是按照源码来弄的,但源码也是有很多错误的,在这样一个不断调试过程中遇到了很多的问题,问题的解决使得对于数据库知识逻辑以及代码都有了一个新的认识,总结下过程中遇到的一些经典问题,以及解决方法; 【问题一,实时错误“3021”】: 1. 是在执行修
虽然是按照源码来弄的,但源码也是有很多错误的,在这样一个不断调试过程中遇到了很多的问题,问题的解决使得对于数据库知识逻辑以及代码都有了一个新的认识,总结下过程中遇到的一些经典问题,以及解决方法;

【问题一,实时错误“3021”】:


1. 是在执行修改或添加信息时会出现这样的错误:实时错误 '3021',BOF 或 EOF中有一个是“真”,或者当前记录已被删除,所需的操作需求一个当前的记录。
2. 是在删除最后一条记录时便会发生错误;

问题出现原因:
我们查找的数据库记录为空,也就是数据库中没有相应的数据;删除最后一条记录时候报这样的错误,也是这个原理,数据库中没有信息;

问题解决方法:
一、进行错误处理

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

Private Sub Form_Load()

    Dim txtSQL As String
    Dim MsgText As String
    'SQL语句
    txtSQL = "select * from student_Info "
    
    '执行查询语句
    Set mrc = ExecuteSQL(txtSQL,MsgText)
    
    If mrc.EOF = False Then
        
        '移动到第一条记录
        mrc.MoveFirst
        
        '显示数据
        Call viewData
        
        '记下当前记录的位置(做标记)
        myBookmark = mrc.Bookmark
        
        '给标志赋初值
        mcclean = True
    Else
        MsgBox "没有纪录!",vbOKOnly + vbInformation,"提示"
        Frame1.Enabled = False
        Frame2.Enabled = False
        Exit Sub
    End If
End Sub
二、当表中只有一条记录时,删除此条记录会报错,添加判断,判断是否为最后一条记录,代码如下:

'定义全局变量'定义数据库记录集对象
Dim rstObj As ADODB.Recordset   '定义标记数据表当前状态的书签
Dim myBookmark As Variant
'当点击删除按钮时,判断此时表中是否只有一条记录
'如果只有一条记录,则删除此记录,关闭窗体
'如果含义多条记录,则删除此记录,显示下一条记录

Private Sub cmdDel_Click()
    Dim intMsg As Integer  '定义记录Msgbox返回值的对象
    myBookmark = rstObj.Bookmark  '标记当前数据表的状态
    intMsg = MsgBox("是否删除当前记录?",vbOKCancel,"删除当前记录")

    If intMsg = vbOK Then  '如果选择“是”
        rstObj.MoveNext  '游标指向下一条记录

        If rstObj.EOF Then  '如果表中只有一条记录
            rstObj.MovePrevious
            rstObj.Delete  '删除最后一条记录后,窗体关闭

            MsgBox "没有记录"
            Unload Me
            
        Else     '如果表中有多条记录
            myBookmark = rstObj.Bookmark '标记当前数据表的状态
            rstObj.MovePrevious
            rstObj.Delete
            rstObj.Bookmark = myBookmark
            Call viewData  '显示数据表中的内容
        End If
        
    Else
        rstObj.Bookmark = myBookmark  '还原数据表状态
        Call viewData  '显示数据表中的内容
    End If
End Sub

【问题二,无可用MDI窗体】:


问题解决方法:
1. 添加一MDI窗体:我们在新建工程窗体的时候,就直接添加MDI窗体;新建一个VB6工程,在“工程资源管理器”中点鼠标右键调出菜单,添加-->添加MDI窗体
2. 把窗体比如Form1的MDIChild属性设置为False,即可解决


【问题三,实时错误“91”】:


问题出现原因:
1. 数据库连接问题;
2. 代码问题

问题解决方法:
一、数据库没连接上,重新连接数据库
【数据库连接及ODBC配置】
1、首先查看服务管理器,这里大家也都知道,把所有项启动运行就可以了。
2、看ODBC数据源的配置是否正确,确定无误后,查看代码。

二、代码调试
有关这样的问题,代码中你少敲或者多敲了一个逗号,或是单引号,双引号,或者多敲了一个空格都可能导致报错,总之大家细心一点好了,另外对于单双引号的问题具体可以去看李光的博客,总结的挺全,在这里小编就不加以说明啦,学生总结(二)-学生中单引号到底是干嘛的 问题出现的很多,总结了几个经典的错误,其实错误的出现也有一部分的原因是自己在弄得过程中,不够认真,有的只是代码书写错误,结果捣鼓好久找不出错误,找来小伙伴一看代码出问题啦,前后自己弄得都不对应,所以说过程中还是要认真一些的,这样也省出不少力气和时间呢! PS:荣幸与您分享,对于这些错误的解决方法,如有更好的方式一起交流!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读