即効テクニック |
●概要● 構文 expression.EOF 取得のみ expression.BOF 取得のみ 設定項目 内容 expression Recordsetオブジェクト[省略不可] カレントレコードが最初のレコードの前に設定されるとBOFプロパティがTrueになり、最後のレコードの後に設定されるとEOFプロパティがTrueになります。Recordsetオブジェクトを開いたときにレコードが1件もない場合、BOFプロパティ、EOFプロパティはともにTrueに設定され、カレントレコードも未定義となります。 ここでは、5件のレコードを含む「社員テーブル」と、レコードのない「給与テーブル」をデータソースとしてRecordsetオブジェクトを作成し、それぞれについてRecordsetオブジェクトのBOF、EOFプロパティを使用してテーブルが空かどうかチェックします。 ●設定● 動作確認をするためには、Visual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し、[参照設定]ダイアログボックスで「Microsoft DAO 3.6 Object Library」にチェックを入れてください。 ●サンプル● Public Sub IsNullTableSample() Dim myDB As Database Dim myRS As DAO.Recordset 'カレントデータベースを変数に代入する Set myDB = CurrentDb '[社員テーブル]をデータソースとしてレコードセットを開く Set myRS = myDB.OpenRecordset("社員テーブル", dbOpenTable) 'BOFプロパティ、EOFプロパティが共にTrueかどうかをチェックする If myRS.BOF And myRS.EOF Then MsgBox "社員テーブルは空です" Else MsgBox "社員テーブルは空ではありません" End If '[給与テーブル]をデータソースとしてレコードセットを開く Set myRS = myDB.OpenRecordset("給与テーブル", dbOpenTable) 'BOFプロパティ、EOFプロパティが共にTrueかどうかをチェックする If myRS.BOF And myRS.EOF Then MsgBox "給与テーブルは空です" Else MsgBox "給与テーブルは空ではありません" End If 'レコードセットを閉じる myRS.Close End Sub