· BOF は、カレント レコードの位置が Recordset オブジェクトの先頭のレコードよりも前にあるかどうかを示します。
· EOF は、カレント レコードの位置が Recordset オブジェクトの終端のレコードよりも後にあるかどうかを示します。
BOF プロパティおよび EOF プロパティは、ブール型 (Boolean) の値を返します。
BOF プロパティと EOF プロパティは、Recordset オブジェクトにレコードがあるかどうか、またはレコード間を移動した場合に Recordset オブジェクトの範囲を超えていないかどうかを調べるために使います。
BOF プロパティは、カレント レコードの位置が先頭のレコードよりも前にある場合は True (-1) を返し、カレント レコードの位置が先頭のレコードか、それよりも後にある場合は False (0) を返します。
EOF プロパティは、カレント レコードの位置が終端のレコードの位置よりも後にある場合は True を返し、カレント レコードの位置が終端のレコードか、それよりも前にある場合は False を返します。
BOF プロパティと EOF プロパティのどちらかが True である場合、カレント レコードはありません。
レコードがまったくない Recordset オブジェクトを開くと、BOF プロパティと EOF プロパティがともに True に設定され、Recordset オブジェクトの RecordCount プロパティが 0 に設定されます。1 つ以上のレコードを持つ Recordset オブジェクトを開くと、先頭のレコードがカレント レコードになり、BOF プロパティと EOF プロパティは False になります。
Recordset オブジェクトのレコードをすべて削除しても、カレント レコードの位置を移動するまでは BOF プロパティと EOF プロパティの設定値が False のままになる場合があります。
次の表は、BOF プロパティと EOF プロパティのそれぞれの組み合わせについて、有効な Move 系メソッドを示したものです。
MoveFirst、 |
MovePrevious、 |
|
MoveNext、 | |
BOF=True、 |
有効 |
エラー |
エラー |
有効 |
BOF=False、 |
有効 |
有効 |
エラー |
エラー |
ともに True |
エラー |
エラー |
エラー |
エラー |
ともに False |
有効 |
有効 |
有効 |
有効 |
この表で Move 系メソッドが有効であるという意味は、レコードの移動が正常に実行できるということではなく、単にその Move 系メソッドがエラーを起こさなずに実行されるということを示しています。
Delete メソッドを呼び出した時点では BOF プロパティや EOF プロパティの設定は変わりません。Recordset から残りのレコードだけを削除した場合でも同様です。
次の表は、Move 系メソッドがレコードの移動に失敗した場合の BOF プロパティと EOF プロパティの設定状態を示したものです。
BOF |
EOF | |
MoveFirst、MoveLast |
True に設定 |
True に設定 |
Move 0 |
変化しない |
変化しない |
MovePrevious、Move < 0 |
True に設定 |
変化しない |
MoveNext、Move > 0 |
変化しない |
True に設定 |