您的位置:首页 > 其它

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

2017-08-26 20:57 323 查看
       虽然是按照源码来弄的,但源码也是有很多错误的,在这样一个不断调试过程中遇到了很多的问题,问题的解决使得对于数据库知识逻辑以及代码都有了一个新的认识,总结下过程中遇到的一些经典问题,以及解决方法;

【问题一,实时错误“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:荣幸与您分享,对于这些错误的解决方法,如有更好的方式一起交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: