【Access文章】Recordset2.BOF 属性 , Recordset2.EOF 属性
时 间:2015-08-25 08:25:55
作 者:杨雪 ID:42182 城市:南京
摘 要:很多初学者对BOF,EOF函数不了解,现讲解一下。
正 文:
参考示例链接: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 |
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)