参考示例链接:http://www.accessoft.com/article-show.asp?id=5346
返回一个值,该值指示当前记录的位置是否在 Recordset 对象中的第一条记录之前。只读 Boolean 类型。
语法
表达式.BOF
表达式 一个代表 Recordset2 对象的变量。
说明
可以使用 BOF 和 EOF 属性确定 Recordset 对象是否包含记录,或确定在从一条记录移动到另一条记录时是否超出了 Recordset 对象的限制。
当前记录指针的位置决定了 BOF 和 EOF 返回值。
如果 BOF 或 EOF 属性为 True,则没有当前记录。
如果打开的 Recordset 对象不包含记录,则 BOF 和 EOF 属性设置为 True,且 Recordset 对象的 RecordCount 属性设置为 0。当打开的 Recordset 对象至少包含一条记录时,则第一条记录即是当前记录,BOF 和 EOF 属性都为 False;它们一直保持 False,直到您分别使用 MovePrevious 或 MoveNext 方法移动到 Recordset 对象的开头和末尾之外为止。如果您移动到
Recordset 的开头或末尾之外的位置,则没有当前记录或不存在记录。
如果删除了 Recordset 对象中剩下的最后一条记录,则在尝试重新定位当前记录之前,BOF 和 EOF 属性都会保持为 False。
如果对包含记录的 Recordset 对象使用 MoveLast 方法,则最后一条记录将成为当前记录;如果之后又使用 MoveNext 方法,则当前记录将变为无效,EOF 属性设置为 True。相反,如果对包含记录的 Recordset 对象使用 MoveFirst 方法,则第一条记录将成为当前记录;如果之后又使用 MovePrevious 方法,则没有当前记录,BOF 属性设置为 True。
通常,在处理 Recordset 对象中的所有记录时,代码将使用 MoveNext 方法遍历所有记录,直到 EOF 属性设置为 True 为止。
如果在 EOF 属性设置为 True 的情况下使用 MoveNext 方法,或者在 BOF 属性设置为 True 的情况下使用 MovePrevious 方法,则会发生错误。
下表显示了在使用不同的 BOF 和 EOF 属性组合时允许的 Move 方法。
|
MoveFirst、
MoveLast
|
MovePrevious、
Move < 0
|
Move 0
|
MoveNext、
Move > 0
|
BOF=True,
EOF=False
|
允许
|
错误
|
错误
|
允许
|
BOF=False,
EOF=True
|
允许
|
允许
|
错误
|
错误
|
均为 True
|
错误
|
错误
|
错误
|
错误
|
均为 False
|
允许
|
允许
|
允许
|
允许
|
允许
Move 方法并不意味着该方法可以成功定位记录。它只是表示允许尝试执行指定的 Move 方法,且不会生成错误。在尝试 Move 后,BOF 和 EOF 属性的状态可能更改。
OpenRecordset 方法在内部调用 MoveFirst 方法。因此,对空记录集使用 OpenRecordset 方法会将 BOF 和 EOF 属性设置为 True。(有关失败的 MoveFirst 方法的行为,请参阅下表。)
所有成功定位记录的
Move 方法都会将 BOF 和 EOF 均设置为 False。
在 Microsoft Access
工作区中,如果向空 Recordset 添加记录,BOF 将成为 False,但是 EOF 将保持 True,指示当前位置位于
Recordset 的末尾。
任何 Delete 方法都不会更改 BOF 或 EOF 属性的设置,即使它从记录集删除了唯一的剩余记录也是如此。
下表显示不定位记录的
Move 方法如何影响 BOF 和 EOF 属性设置。
|
BOF
|
EOF
|
MoveFirst、MoveLast
|
True
|
True
|
Move 0
|
没有变化
|
没有变化
|
MovePrevious、Move < 0
|
True
|
没有变化
|
MoveNext、Move > 0
|
没有变化
|
True
|