既に DAO を使って、データベースに接続・切断を行なう方法は説明したので、あとはプログラムを数行加えるだけで、簡単にレコードを表示できます。
これから先のサンプルプログラムは、カレントデータベースを対象としています。
【1】Accessのファイル「SampleDB020.mdb」を起動し、データベースウィンドウの「テーブル」で「T01Prefecture」を選択します。
【2】「T01Prefecture」のレコードとテーブルデザインを確認してください。
このテーブルのレコードを、VBAを使って、イミディエイト ウィンドウに表示します。
【3】Access で VBEを起動します。
*VBEは「Altキー」+「F11キー」で起動できます。
【4】新たに「test6」という標準モジュールを作成して、以下のように Subプロシージャを定義します。
Sub dispData()
Dim db As DAO.Database
Set db = CurrentDb
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("T01Prefecture")
Do Until rs.EOF
Debug.Print rs.Fields("PREF_CD") & " " & rs.Fields("PREF_NAME")
'Debug.Print rs!PREF_CD & " " & rs!PREF_NAME
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
入力候補とコピーを上手く使って入力してください。
「Ctrlキー」+「スペースキー」で入力候補を表示できます。
【5】イミディエイト ウィンドウに表示する「Debug.Print」の部分は、二通りの方法を用意しました。どちらでも結果は同じです。
まずは上側で試してみましょう。下側は半角の「'」シングルクォーテーションでコメントにします。
【6】Subプロシージャの dispData() から、プログラムを実行してください。
・dispData()の実行結果
イミディエイト ウィンドウをスクロールすると、最後まで表示されています。
【7】イミディエイト ウィンドウに表示されたデータが多い場合は、「Ctrlキー」+「Aキー」で全て選択できます。
【8】イミディエイト ウィンドウをクリアしてください。
【9】今度は下側で試してみます。上側を半角の「'」シングルクォーテーションでコメントにし、下は外してください。
あとは同様に dispData() から実行するだけです。結果は同じだということが、確認できます。
プログラムの詳しい解説は、次回に行ないますので、今回は操作の手順に慣れることに専念してください。
【ワンポイント】
イミディエイト ウィンドウから、直接 Subプロシージャを実行するには、以下のようにします。Functionプロシージャの場合と少し違いますので、注意してください。
・Subプロシージャは()カッコを付けなくても呼び出せます。
dispData
・カッコを付ける場合は先頭に call を加えてください。
call dispData()
*Functionプロシージャと違い、「?」クエスチョンは不要です。
FunctionプロシージャとSubプロシージャの違いを理解してください。