##大家在敲学生信息管理系统时,经常会遇到这种情况:
##数据库中没有添加记录,但我们点击修改记录时,会出现如下提示:
###首先,我们先让我们了解一下什么是EOF和BOF吧。
BOF:指当前记录位置位于Recordset对象的第一个记录之前;
EOF:指当前记录位置位于Recordset对象的最后一个记录之后。
这两个的属性值均返回布尔型:True和False,使用BOF和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。 下表即是各自的使用说明及查询结果
如图我们能很清楚的看到当mrc指向编号-1,这样就符合了BOF的情况;指向5(并不存在这条记录)的时候,这就是EOF的情况。如果同时出现BOF和EOF的情况,就是说指针既在上界之外也在下界之外,这就表示该数据集为空。
##出现这种错误的原因:
1、我们查找的数据库记录为空;
2、查找到数据后,用Del命令删除记录后,在引用Fields后出现错误;
(Fields:当你打开一个数据集时,需要声明一个数据集对象,在它的下面会有一个字段集合,这个字段集合就是fields。
使用方法:
rs(数据集对象).fields(“字段名称”)
rs(数据集对象).fields(字段索引号 )
3、已经用MoveFirst或用MovePrevious命令移动数据库开始后再用MovePrevious命令;
4、已经用Movelast或用MoveNext命令移动至数据库最后位置后再用MoveNext命令;
##解决问题的方法:
1.加一个错误处理:
On Error GoTo 1:
mrc.MoveFirst
1:
If Err=3021 then
MsgBox"无记录!"
end if
2.用一个if语句,让程序直接进行下一步即可。
If mrc.EOF AND mrc.BOF Then
MsgBox"无记录!"
frmAddinfo.Show
else
mrc.movefirst
end if
##以上是’3021’的总结,如果有更好的办法,请大神指导。