学生管理系统问题总结- 0.2
虽然是按照源码来弄的,但源码也是有很多错误的,在这样一个不断调试过程中遇到了很多的问题,问题的解决使得对于数据库知识逻辑以及代码都有了一个新的认识,总结下过程中遇到的一些经典问题,以及解决方法; 【问题一,实时错误“3021”】: 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窗体】: 问题解决方法:
【问题三,实时错误“91”】: 问题出现原因: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |