这两天敲管理系统,经常遇到EOF和BOF,现在来看看他们到底是干嘛的又有什么区别和相同之处呢?
含义 | 返回值型 | 作用 | |
BOF | 当前记录位置位于Recordest对象的第一个记录之前 | 布尔型 | 确定Recordest对象是否包含记录,或者从一个记录移到另一个记录时是否超出Recordest对象的限制 |
EOF | 当前记录位置位于Recordest对象的最后一个记录之后 | 布尔型 | 确定Recordest对象是否包含记录,或者从一个记录移到另一个记录时是否超出Recordest对象的限制 |
详细说明:
(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,直到重新安排当前记录。
管理系统中还出现了许多关于BOF和EOF的语句看看他们都是什么意思呢?
If objRs.BOF Then
表示:当前指针的位置是在第一行记录之前,则...
IfobjRs.EOF Then
表示:当前指针的位置是在最后一行记录之后,则...
If NotobjRs.EOF Then
表示:当前指针的位置没有到达最后一条记录
If NotobjRs.BOF then
表示:当前指针的位置没有到达第一条记录
If Not (objRs.BOF ANDobjRs.EOF) Then
表示:指针位于RecordSet的当中(并非是最后一条和第一条),说明一定有记录。
If objRs.BOF AND objRs.EOF Then
表示:没有任何记录
而且还经常配合着 MoveFirst 、 MoveLast 、 MovePrevIoUs 与 MoveNext 四种Move方法来用。以下表格表明用不同的EOF和BOF属性所允许的Move方法。
MoveFirst,MoveLast | MovePrevIoUs,Move<0 | Move 0 | MoeNext,Move>0 | |
BOF=True,EOF=False | 允许 | 错误 | 错误 | 允许 |
BOF=Flase,EOF=true | 允许 | 允许 | 错误 | 错误 |
同时为True | 错误 | 错误 | 错误 | 错误 |
同时为Flase | 允许 | 允许 | 允许 | 允许 |
经过这几天的查资料和领悟,学生管理系统关于这部分的代码理解还是比较容易的!不会就查和思考,理解起来比较快速和方便!