Recordset2.BOF プロパティ (DAO)
適用先: Access 2013、Office 2013
カレント レコードの位置が、 Recordset オブジェクトの先頭のレコードより前にあるかどうかを示す値を取得します。 読み取り専用の Boolean です。
構文
式 。Bof
式Recordset2 オブジェクトを表す変数。
注釈
BOF プロパティおよび EOF プロパティを使用すると、Recordset オブジェクトにレコードが格納されているかどうかの確認、またはレコード間を移動したときに Recordset オブジェクトの範囲を超えたかどうかの確認ができます。
カレント レコードを参照するポインターの位置により、 BOF および EOF の戻り値が決まります。
BOF プロパティと EOF プロパティのいずれかが True になっている場合は、カレント レコードが存在しません。
レコードを含まない Recordset オブジェクトを開くと、 BOF プロパティおよび EOF プロパティが True に設定され、 Recordset オブジェクトの RecordCount プロパティの設定値が 0 になります。 少なくとも 1 つのレコードを含む Recordset オブジェクトを開くと、最初のレコードがカレント レコードになり、 BOF プロパティおよび EOF プロパティが False になって、 MovePrevious メソッドまたは MoveNext メソッドを使用して Recordset オブジェクトの先頭または末尾を越えて移動するまで False のままになります。 レコードセットの先頭または末尾を超えて移動すると、現在のレコードが存在しないか、レコードが存在しません。
Recordset オブジェクト内に残っている最後のレコードを削除すると、カレント レコードを再配置しようとするまで BOF プロパティおよび EOF プロパティは False のままになります。
レコードを含む Recordset オブジェクトで MoveLast メソッドを使用すると、最後のレコードがカレント レコードになり、その後 MoveNext メソッドを使用すると、カレント レコードが無効になり、 EOF プロパティが True に設定されます。 一方、レコードを含む Recordset オブジェクトで MoveFirst メソッドを使用すると、最初のレコードがカレント レコードになり、その後 MovePrevious メソッドを使用すると、カレント レコードがなく、 BOF プロパティが True に設定されます。
通常、 Recordset オブジェクトのすべてのレコードを操作する場合は、 EOF プロパティが True に設定されるまで MoveNext メソッドを使用してレコード内をループするコードを記述します。
EOF プロパティが True に設定されている場合に MoveNext メソッドを使用するか、または BOF プロパティが True に設定されている場合に MovePrevious メソッドを使用すると、エラーが発生します。
次の表は、 BOF プロパティおよび EOF プロパティのさまざまな組み合わせで使用できる Move メソッドの種類を示します。
MoveFirst、 |
MovePrevious、 |
|
MoveNext、 |
|
---|---|---|---|---|
BOF=True、 |
可 |
エラー |
エラー |
可 |
BOF=False、 |
可 |
可 |
エラー |
エラー |
両方とも True |
Error |
Error |
Error |
Error |
両方とも False |
可 |
可 |
可 |
可 |
Move メソッドが使用可となっていても、そのメソッドがレコードを正常に配置できるとは限りません。 指定された Move メソッドを実行しようとすることが許可されていて、エラーが発生しないことを意味しているだけです。 BOF プロパティおよび EOF プロパティの状態は、試みた Move メソッドの結果によって変わる可能性があります。
OpenRecordset メソッドは、MoveFirst メソッドを内部的に呼び出します。 そのため、空のレコード セットで OpenRecordset メソッドを使用すると、 BOF プロパティと EOF プロパティが True に設定されます。 (失敗した MoveFirst メソッドの動作については、次の表を参照してください)。
Move メソッドを使用してレコードが正常に配置される場合は常に、 BOF プロパティと EOF プロパティの両方が False に設定されます。
Microsoft Access ワークスペースでは、空のレコードセットにレコードを追加すると、 BOF プロパティが False になりますが、 EOF プロパティは True のまま変わらず、カレント レコードの位置がレコードセットの末尾にあることを示します。
いずれかの Delete メソッドを使用して、レコードセットに 1 つのみ残っているレコードを削除しても、 BOF プロパティおよび EOF プロパティの設定は変更されません。
次の表は、Move メソッドでレコードが配置されなかった場合に、BOF プロパティおよび EOF プロパティがどのように設定されるかを示しています。
BOF |
EOF |
|
---|---|---|
MoveFirst、MoveLast |
True |
True |
Move 0 |
変更なし |
変更なし |
MovePrevious、 Move< 0 |
True |
変更なし |
MoveNext、 Move> 0 |
変更なし |
True |