敲学生管理系统遇见错误之实时错误‘3021’
2013-08-05 09:26
337 查看
最近在敲学生管理系统,遇见最多也是最大的一个问题就是:
遇见这个问题的有两个原因:第一:当你还未添加任何记录的时候,就要试图去修改记录,就会出现上面的那条错误提示。
解决方案:第一:你先记得添加一条记录,但是这不是解决的根本办法,所以我们就采取第二个解决方案。
第二:在启动窗体中把原先的代码:
遇见这个问题的第二个原因:当你修改记录时,点击删除按钮,删除到最后一个,也会出现这类问题。源代码为:
解决方案(在源代码上添加一段代码即可):第一:
第二:
遇见这个问题的有两个原因:第一:当你还未添加任何记录的时候,就要试图去修改记录,就会出现上面的那条错误提示。
解决方案:第一:你先记得添加一条记录,但是这不是解决的根本办法,所以我们就采取第二个解决方案。
第二:在启动窗体中把原先的代码:
Private Sub modifycourseMenu_Click() frmModifycourseinfo.Show End Sub改为:
Private Sub modifycourseMenu_Click() txtSQL = "select * from course_info" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.RecordCount = 0 Then MsgBox "课程信息不存在,请稍后补充!", vbOKOnly + vbExclamation, "警告" mrc.Close Set mrc = Nothing frmAddcourseinfo.Show Exit Sub Else frmModifycourseinfo.Show
End If End Sub这样改是比较完善的了,因为当没有记录却点击修改记录的时候,就会弹出“课程信息不存在请稍候补充”的警告框,然后接下来它就会弹出来添加记录窗体,符合人类的正常思维!
遇见这个问题的第二个原因:当你修改记录时,点击删除按钮,删除到最后一个,也会出现这类问题。源代码为:
Private Sub deleteCommand_Click() myBookmark = mrc.Bookmark str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录") If str2$ = vbOK Then mrc.MoveNext If mrc.EOF Then mrc.MoveFirst myBookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = myBookmark Call viewData Else myBookmark = mrc.Bookmark mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark Call viewData End If Else mrc.Bookmark = myBookmark Call viewData End If End Sub
解决方案(在源代码上添加一段代码即可):第一:
Private Sub deleteCommand_Click() On ErrorGoTo_s_err myBookmark = mrc.Bookmark str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录") If str2$ = vbOK Then mrc.MoveNext If mrc.EOF Then mrc.MoveFirst myBookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = myBookmark Call viewData Else myBookmark = mrc.Bookmark mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark Call viewData End If Else mrc.Bookmark = myBookmark Call viewData End If s_err: msgbox "记录已经删除!",vbOkonly +vbExclamation,"警告" End Sub但是这种方法是查错用的,出现错误就跳过,感觉不太专业,所以第二种方法更提倡大家用!
第二:
Private Sub deleteCommand_Click() myBookmark = mrc.Bookmark '做标记 str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录") If str2$ = vbOK Then mrc.MoveNext '移到下一条记录 If mrc.EOF Then mrc.MovePrevious mrc.MovePrevious '如果数据库中只有一条记录的时候, 防止删除记录为空时出错加的一条语句。
If mrc.BOF Then mrc.MoveNext mrc.Delete MsgBox "最后一条记录已经删除,记录已经为空!", vbOKOnly + vbExclamation, "警告"
Unload Me Else mrc.MoveFirst myBookmark = mrc.Bookmark '做标记 mrc.MoveLast mrc.Delete mrc.Bookmark = myBookmark '取消标记 Call viewData '显示现在的数据 End If Else myBookmark = mrc.Bookmark mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark Call viewData '显示当前的数据 End If Else mrc.Bookmark = myBookmark Call viewData '显示现在的数据 End If其实出现这两种错误的根本原因是:数据记录为空!在数据库中sql语句查询出来的值是空的,因此mrc数据集是空的,没有数据可以返回给文本框,所以就报错了!
相关文章推荐
- 学生信息管理系统之实时错误3021
- 学生管理系统调试——实时错误(实时错误“3021)
- 【学生信息管理系统】——实时错误'3021' BOF EOF
- 学生信息管理系统中的实时错误’3021‘解决办法
- 学生信息管理系统实时错误3021(二)
- 学生信息管理系统-错误‘3021’
- 学生信息管理系统错误总结之3021
- 【学生信息管理系统】3021错误原因及解决办法
- 学生管理系统调试——实时错误(实时错误“424”“5”“91”)
- 学生管理系统 实时错误’91': 对象变里或with块变里未设置
- 学生信息管理系统-错误‘3021’
- 那些美丽的实时错误—学生信息管理系统
- 【学生信息管理系统】之“实时错误‘91'"
- 学生管理系统调试——实时错误(实时错误“424”“5”“91”)
- 学生信息管理系统 错误调试及错误总结(2)
- 学生信息管理系统之错误百出2
- 学生信息管理系统——错误类型汇总
- 学生信息管理系统—优化错误篇
- 用c++编学生管理系统,连接到sql,在显示记录按钮点后出现错误
- 学生信息管理系统 错误调试及错误总结(3)