Recordset2.EOF プロパティ (DAO)

適用先: Access 2013、Office 2013

カレント レコードの位置が、 Recordset オブジェクトの末尾のレコードより後にあるかどうかを示す値を取得します。 読み取り専用の Boolean です。

構文

.EOF

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 オブジェクトの先頭または末尾を越えて移動すると、カレント レコードがないか、またはレコードが存在しなくなります。

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、
MoveLast

MovePrevious、
Move < 0


Move 0

MoveNext、
Move > 0

BOF=True、
EOF=False

エラー

エラー

BOF=False、
EOF=True

エラー

エラー

両方とも True

Error

Error

Error

Error

両方とも False

Move メソッドが使用可となっていても、そのメソッドがレコードを正常に配置できるとは限りません。 指定された Move メソッドを実行しようとすることが許可されていて、エラーが発生しないことを意味しているだけです。 BOF プロパティおよび EOF プロパティの状態は、試みた Move メソッドの結果によって変わる可能性があります。

OpenRecordset メソッドは、MoveFirst メソッドを内部的に呼び出します。 そのため、空のレコード セットで OpenRecordset メソッドを使用すると、 BOF プロパティと EOF プロパティが True に設定されます。 (失敗した MoveFirst メソッドの動作については、次の表を参照してください)。

すべての Move メソッドは、レコードを正常に配置すると、 BOF プロパティおよび EOF プロパティを False に設定します。

Microsoft Access ワークスペースでは、レコードを空の Recordset オブジェクトに追加すると、 BOF プロパティが False になりますが、 EOF プロパティは True のままで、現在の位置が Recordset の末尾であることを示します。

Delete メソッドは、 Recordset オブジェクトに唯一残るレコードを削除する場合でも、 BOF プロパティおよび EOF プロパティの設定値をいずれも変更しません。

次の表は、Move メソッドでレコードが配置されなかった場合に、BOF プロパティおよび EOF プロパティがどのように設定されるかを示しています。

BOF

EOF

MoveFirstMoveLast

True

True

Move 0

変更なし

変更なし

MovePreviousMove< 0

True

変更なし

MoveNextMove> 0

変更なし

True