Recordset2.BOF 属性 (DAO)
适用于:Access 2013、Office 2013
返回一个值,该值指示当前记录的位置是否在 Recordset 对象中的第一条记录之前。 只读 Boolean。
语法
表达式 。转炉
表达 一个代表 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、 |
MovePrevious、 |
|
MoveNext、 |
|
---|---|---|---|---|
BOF=True、 |
Allowed |
错误 |
错误 |
允许 |
BOF=False、 |
允许 |
Allowed |
错误 |
错误 |
均为 True |
错误 |
错误 |
错误 |
错误 |
均为 False |
Allowed |
Allowed |
Allowed |
Allowed |
允许 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 |