Access VBA DAOでレコードを表示する方法。

VBA で DAO を利用して、 Access のテーブルにあるレコードを、イミディエイト ウィンドウに表示してみましょう。

既に DAO を使って、データベースに接続・切断を行なう方法は説明したので、あとはプログラムを数行加えるだけで、簡単にレコードを表示できます。

これから先のサンプルプログラムは、カレントデータベースを対象としています。


【1】Accessのファイル「SampleDB020.mdb」を起動し、データベースウィンドウの「テーブル」で「T01Prefecture」を選択します。

access-vba-164.gif


【2】「T01Prefecture」のレコードとテーブルデザインを確認してください。

access-vba-163.gif

このテーブルのレコードを、VBAを使って、イミディエイト ウィンドウに表示します。


【3】Access で VBEを起動します。

access-vba-154.gif

*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


access-vba-155.gif

入力候補とコピーを上手く使って入力してください。
「Ctrlキー」+「スペースキー」で入力候補を表示できます。


【5】イミディエイト ウィンドウに表示する「Debug.Print」の部分は、二通りの方法を用意しました。どちらでも結果は同じです。

まずは上側で試してみましょう。下側は半角の「'」シングルクォーテーションでコメントにします。

access-vba-157.gif


【6】Subプロシージャの dispData() から、プログラムを実行してください。

・dispData()の実行結果
access-vba-156.gif

イミディエイト ウィンドウをスクロールすると、最後まで表示されています。

access-vba-159.gif


【7】イミディエイト ウィンドウに表示されたデータが多い場合は、「Ctrlキー」+「Aキー」で全て選択できます。

access-vba-165.gif


【8】イミディエイト ウィンドウをクリアしてください。

access-vba-166.gif


【9】今度は下側で試してみます。上側を半角の「'」シングルクォーテーションでコメントにし、下は外してください。

access-vba-158.gif

あとは同様に dispData() から実行するだけです。結果は同じだということが、確認できます。

プログラムの詳しい解説は、次回に行ないますので、今回は操作の手順に慣れることに専念してください。


【ワンポイント】
イミディエイト ウィンドウから、直接 Subプロシージャを実行するには、以下のようにします。Functionプロシージャの場合と少し違いますので、注意してください。

・Subプロシージャは()カッコを付けなくても呼び出せます。
dispData
access-vba-161.gif


・カッコを付ける場合は先頭に call を加えてください。
call dispData()
access-vba-162.gif


*Functionプロシージャと違い、「?」クエスチョンは不要です。

FunctionプロシージャとSubプロシージャの違いを理解してください。


スポンサードリンク

スポンサードリンク






Access VBA 初心者入門講座 TOPへ