Accessテーブルのフィールド名(項目名)をExcelシートへ取り込む方法について紹介します。ExcelとAccessとの連携によるデータのやり取りでは基本中の基本操作となります。是非一連の流れを理解して活用してみて下さい。
構文
記述方法は以下の通りとなります。
①データベースへの接続
Set[変数1]= OpenDatabase(”[データベースの登録パス]”)
②テーブルへの接続
Set[変数2]=[変数1].OpenRecordset(”[SQL文]”)
-----------------------------
[シート名及びセル]= [変数2].Fields([番号]).Name
-----------------------------
②テーブルの切断
[変数2].Close
Set[変数2]= Nothing
①データベースの切断
[変数1].Close
Set[変数1]= Nothing
[説明]:
テーブルのデータを取り込むには
[シート名及びセル]= [変数2].Fields([番号]).Name
と記述します。また、内容は
「テーブル([変数2])のフィールド名(Fields([番号]).Name)を、指定したExcelシートのセル([シート名及びセル])に貼り付けて下さい。」
との意味になります。
(※[番号]にはフィールドの番号を指定します。フィールドの番号は左から0、1、2・・・の順番となり、0番から始まる点に注意して下さい。)
-------------------------------
※Accessテーブルのデータを操作するには、事前にAccessデータベースへの接続(上記①データベースへの接続)やテーブルへの接続(上記②テーブルへの接続)の指定が必要となります。また、接続した後はテーブルの切断(上記②テーブルの切断)やデータベースの切断(上記①データベースの切断)の指定も必要となります。データベースへの接続/切断についてはこちらを、テーブルへの接続/切断についてはこちらを参照して下さい。
-------------------------------
[記述例]:
For 列 = 1 To r.Fields.Count
Cells(1, 列) = r.Fields(列 - 1).Name
Next
使い方
使い方について具体的に説明します。
[プログラミング例]:
Sub サンプル()
'↓処理①
Dim db As Database
Dim r As Recordset
Dim 列 As Integer
'↓処理②
Set db = OpenDatabase("C:\テスト\従業員.accdb")
'↓処理③
Set r = db.OpenRecordset("select * from T_従業員")
'↓処理④
For 列 = 1 To r.Fields.Count
Cells(1, 列) = r.Fields(列 - 1).Name
Next
'↓処理⑤
r.Close
Set r = Nothing
'↓処理⑥
db.Close
Set db = Nothing
End Sub
処理の流れは以下の通りとなります。
[処理①]:変数定義
データベース/テーブルへの接続他を格納するための変数定義となります。
[処理②]:データベースへの接続
※データベースへの接続についてはこちらを参照して下さい。
[処理③]:テーブルへの接続
※テーブルへの接続についてはこちらを参照して下さい。
[処理④]:テーブルのフィールド名取り込み
上記[処理③]で接続したテーブルのフィールド名を取り込みます。取り込み時にフィールドが幾つあるかを予めカウント(Count)しておき、For~Next文で左から順番にフィールド名をExcelシートの指定セルにセット(取り込み)していきます。
[処理⑤]:テーブルの切断
※テーブルの切断についてはこちらを参照して下さい。
[処理⑥]:データベースの切断
※データベースの切断についてはこちらを参照して下さい。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、Accessデータベースとの接続には事前設定が必要となります。事前準備はこちらを参考にして下さい。
[実行例]:
(事前準備)
C:\テストにAccessデータベース(従業員.accdb)が登録されている必要があります。
また、従業員.accdbデータベースの中にはT_従業員テーブルが登録されています。
更に、T_従業員テーブルの中には以下のデータが登録されています。(※フィールド名は、左から「氏名、番号、部署、性別、年齢」となっています。
(実行内容)
①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②指定のExcelシート及びセルにAccessテーブルのフィールド名(項目名)が取り込まれます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい
Accessテーブルのフィールド名を取り込む方法についての説明は以上です。
おわりに
今回はAccessテーブルのフィールド名(項目名)を取り込む方法について説明しました。テーブルデータを取り込む際に項目名も一緒に取り込みたい等の場合に使用して下さい。また、今回の様にExcel⇔Accessの連携した処理を行う場合に関しては、予め事前の準備作業が必要となります。こちらも忘れずに実施しておくようにお願いします。