AccessVBAメモ

AccessVBAで作ったサンプルコード集

AccessVBA 処理結果に応じてテーブルのフィールド名を変更する

スポンサーリンク

例えば、日付、Field1、Field2と3つのフィールドがあるテーブルがあるとします。

計算結果によっては、Field1が商品A、ある時には商品Bなど、状況によって、Field1と2に表示したいフィールド名が可変になる場合があります。

 

計算元のテーブルやクエリをクロス集計クエリにしておけば出来るのですが、テーブルに一旦抽出した方が後の処理が容易くなると思います。

今回はクロス集計クエリをテーブル化するようなイメージでしょうか。

 

以下、VBAの記述

'----------------------------------------------------------------------------------------------

Private Sub changeFldName()

Dim db As Database
Dim tdf As TableDef

Dim rst As Recordset

Dim strSQL As String

Set db = CurrentDb

 

Set tdf = db.TableDefs("テーブル名")  'フィールド名を変更したいテーブル

strSQL = "SELECT テーブル元.Field1 FROM テーブル元 GROUP BY テーブル元.Field1;"  'フィールド名の参照元のテーブル

 

’Field1のフィールド名だけ取得するコードのみ例示

 

Set rst = db.OpenRecordset(strSQL,dbOpenSnapShot)

 

'テーブル元のField1をテーブル名のField1へ代入

'テーブル名のField1の左から2番目と想定

tdf.Fields(1).Name = rst!Field1

db.Close
Set db = Nothing

 End Sub

 

'----------------------------------------------------------------------------------------------------

 

以上、VBA記述終わり。