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記述終わり。