Recordsetでフィールド名を取得するサンプル|RecordsetClone:Access VBA入門

Recordsetを使いテーブルのフィールド名を取得します。フォームのRecordsetを元にRecordsetCloneを使用するサンプルも掲載します。

BackHome BackVBA入門

ここでは顧客マスターテーブルのフィールド名を取得します。




Recordsetでフィールド名を取得するVBA

下のようなフォームを作成しました。
[フィールド名取得]ボタンをクリックすると、テキストボックスに一覧を表示します。


クリックイベントで、フィールド名を取得するVBAです。
クリックイベントで、フィールド名を取得するVBA

・ Fields.Countでフィールド数を取得し、その数だけFor Nextでループします。
・ Fields(i).Nameの配列でフィールド名を順に取得しています。

Private Sub コマンド0_Click()
    Dim db As Database
    Dim rs As Recordset
    Dim i As Long
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("T-顧客マスター", dbOpenTable)
    
    Me!テキスト1 = Null
    For i = 0 To rs.Fields.Count - 1
        Me!テキスト1 = Me!テキスト1 & rs.Fields(i).Name & vbCrLf
    Next
    
    Set rs = Nothing
    Set db = Nothing
End Sub

実行結果のフォームです。
実行結果のフォーム

フォームのRecordsetを元にした場合

フォームのレコードソース プロパティにテーブルを設定します。


RecordsetCloneを使用したVBA
RecordsetCloneを使用したVBA

・ Set rs = Me.RecordsetClone でRecordsetが作成できるので簡単になります。

Private Sub コマンド0_Click()
    Dim rs As Recordset
    Dim i As Long
    
    Set rs = Me.RecordsetClone
    
    Me!テキスト1 = Null
    For i = 0 To rs.Fields.Count - 1
        Me!テキスト1 = Me!テキスト1 & rs.Fields(i).Name & vbCrLf
    Next
    
    Set rs = Nothing
    Set db = Nothing
End Sub


BackHome BackVBA入門

Copyright(C) FeedSoft