学生管理信息系统------实时错误“3021”

在调学生的时候同样遇到了3021 这个问题,下面是解决方法
我们先来了解一下EOF,BOF的用法:
BOF:指当前记录位置位于Recordset对象的第一个记录之前; 
EOF:指当前记录位置位于Recordset对象的最后一个记录之后。
这两个的属性值均返回布尔型:True和False,使用BOF和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。

说明:  
(1)如果当前记录位于第一个记录之前,BOF属性将返回 True(-1),如果当前记录为第一个记录或位于其后则将返回 False (0)。  (2)如果当前记录位于Recordset 对象的最后一个记录之后 EOF 属性将返回True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False。
( 3)如果BOF 或 EOF 属性为 True,则没有当前记录。 
(4)如果打开没有记录的Recordset 对象,BOF 和 EOF 属性将设置为True,而 Recordset 对象的 RecordCount 属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而BOF 和 EOF 属性为 False。  
(5)如果删除Recordset 对象中保留的最后记录,BOF 和 EOF属性将保持 False,直到重新安排当前记录。

具体用法:
 If objRs.BOF Then  
 表示:当前指针的位置是在第一行记录之前,则… 
 If objRs.EOF Then 
 表示:当前指针的位置是在最后一行记录之后,则… 
 If Not objRs.EOF Then 
 表示:当前指针的位置没有到达最后一条记录 
 If Not objRs.BOF then 
 表示:当前指针的位置没有到达第一条记录 
 推荐使用下面两条  If Not (objRs.BOF AND objRs.EOF) Then 
 表示:指针位于RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。  
If objRs.BOF AND objRs.EOF Then  表示:没有任何记录

解决方法:
加一个判断语句,遇到就会自动跳过

on  Error  GoTo  1
	mrc.MoveNext
	call viewData
1:
	If Err = 3021 then
	If MsgBox ("已经没有数据,是否添加数据?",vbOKCancel, ”提示	")  = vbOK then
		frmAddresult.show
	end if 
	end if 
	end sub

当点击下一条没有数据的时候,就会弹出提示框问是否添加数据,这样就可以避免出现错误。

发布了21 篇原创文章 · 获赞 1 · 访问量 1322

猜你喜欢

转载自blog.csdn.net/weixin_44682554/article/details/100107664