Recordsetを使いテーブルのフィールド名を取得します。フォームのRecordsetを元にRecordsetCloneを使用するサンプルも掲載します。
Recordsetでフィールド名を取得する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
・ 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