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

前端之家收集整理的这篇文章主要介绍了学生管理系统问题总结- 0.2前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然是按照源码来弄的,但源码也是有很多错误的,在这样一个不断调试过程中遇到了很多的问题,问题的解决使得对于数据库知识逻辑以及代码都有了一个新的认识,总结下过程中遇到的一些经典问题,以及解决方法

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


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

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

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

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

@H_301_17@

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
二、当表中只有一条记录时,删除此条记录会报错,添加判断,判断是否为最后一条记录,代码如下:

@H_301_17@

'定义全局变量'定义数据库记录集对象
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窗体】:@H_301_17@


@H_301_17@

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


@H_301_17@

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


@H_301_17@

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

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

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

猜你在找的VB相关文章