Access VBAのADOでテーブルを開きレコードを順に表示する

Access VBAでADOを使用しテーブルを開き、テキストボックスに表示する方法です。

BackHome Backテーブル

基本的なTipsになりますが、未掲載でしたので掲載します。

テーブルをADOのレコードセットで開き、Do Untilで全てのレコードを読み込み、テキストボックスに表示します。

レコードの終了はEOFで判定します。

実行手順

フォームに実行を開始するコマンドボタンと、表示するテキストボックスを配置します。

コマンドボタンのクリックイベントにVBAを入力

  1. CurrentProject.ConnectionでADOのオブジェクトを作成する
  2. ADODB.Recordsetでレコードセットを作成する
  3. Doループを実行 レコードセットでレコードを読みテキストボックスに表示する
  4. EOFでループを抜ける レコードセットを閉じる
  5. ADOを閉じる

ADOを使用するには、参照設定が必要です。設定方法は「Access VBA:ADOとは」を参照してください。




VBAでADOを使用しテーブルを開き、レコードを順に表示する

レコードを順に表示する、商品テーブルです。

商品テーブル

● フォームの作成

フォームにボタンを配置し、プロパティのクリック時イベントに[イベント プロシージャ]を指定します。

フォームにボタンを配置し、プロパティを設定する

レコードを表示する、テキストボックスを配置します。

レコードを表示する、テキストボックスを配置する

これでボタンをクリックすると、ADOでテーブルを開き、レコードを順に表示するようにします。



● VBAの入力

下記のVBAコードを入力します。

  • ADOの部分は定型文になります。
  • Do Until rs.EOFでレコードの最終を判定します。
  • rs.MoveNextで次のレコードに移動します。
  • フィールドのデータは下の、rs(0)のようにレコードセットにインデックス番号を指定することで取得できます。
    rs(0)の0はフィールドの先頭になります。
VBAの入力画面

Option Compare Database

Private Sub コマンド0_Click()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    Me!テキスト1.Value = ""
    
    Set cn = Application.CurrentProject.Connection
    Set rs = New ADODB.Recordset
    
    rs.Open "T_商品", cn
    
    Do Until rs.EOF
        Me!テキスト1.Value = Me!テキスト1.Value & rs(0) & _
            "、" & rs(1) & "、" & rs(2) & "、" & rs(5) & vbCrLf
        rs.MoveNext
    Loop
        
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    MsgBox "完了しました。"

End Sub

VBAの実行結果

[テーブルを開く]ボタンをクリックすると、テーブルの全レコードがテキストボックスに表示されました。

テーブルの全レコードがテキストボックスに表示された

関連リンク


BackHome Backテーブル

Copyright(C) FeedSoft