この記事では、AccessのデータベースにあるテーブルにCSVファイルのデータをインポートする方法についてご説明します。
【動画】AccessVBAのモジュールをすべてエクスポートする実際の動き
本題に入る前に、まずは次の動画をご覧ください。
TransferTextメソッドを実行してCSVファイルのデータをテーブルにインポートしています。
コード作成の流れ
TransferTextメソッドには、インポートするCSVファイルのフルパスや、インポート先のテーブル名などを指定します。
AccessのデータベースファイルとCSVファイルの例
今回は次のAccessのデータベースファイルとCSVファイルを用意しました。
Accessのデータベースファイル
Accessのデータベースファイルには「T_社員」というテーブルが存在しています。
この「T_社員」というテーブルにCSVファイルのデータをインポートします。
CSVファイル
今回は以下のCSVファイルのデータを「T_社員」というテーブルにインポートします。
各データの値にはカンマ区切りで「”」(ダブルクォーテーション)で囲んであります。
また、CSVファイルの文字コードはShift_JISです。
マクロを実行すると、「T_社員」というテーブルにCSVファイルのデータがインポートされます。
コードの例
Option Compare Database Option Explicit Private Sub btn_exec_Click() Dim strPath As String 'インポートデータのあるCSVファイルの格納先用変数 'インポート先のテーブル名を取得する Const impTbl As String = "T_社員" 'インポートデータのあるCSVファイルの格納先を取得する '⇒CSVファイルの格納先はAccessのデータベースファイルと同じ場所 strPath = Application.CurrentProject.Path & "\data.csv" 'CSVファイルをテーブルにインポートする DoCmd.TransferText TransferType:=acImportDelim, _ TableName:=impTbl, _ FileName:=strPath, _ HasFieldNames:=True End Sub
注目すべきコード
見て頂きたいのは16行目から19行目です。
'CSVファイルをテーブルにインポートする DoCmd.TransferText TransferType:=acImportDelim, _ TableName:=impTbl, _ FileName:=strPath, _ HasFieldNames:=True
コードの説明
以上のコードは、TransferTextメソッドを実行してCSVファイルのデータをテーブルにインポートする処理のコードです。
TransferTextメソッドには、インポートするCSVファイルのフルパスや、インポート先のテーブル名を指定します。
TransferType
インポートするCSVファイルの形式を指定する引数の項目です。
CSVファイルのデータは区切り文字で区切られたファイルなので、acImportDelimを指定しています。(acImportDelimは区切り文字で区切られたテキストファイルをインポートするための定数)
TableName
TableNameにはデータをインポート先のテーブル名を指定します。
テーブル名は9行目で取得しています。
'インポート先のテーブル名を取得する Const impTbl As String = "T_社員"
FileName
FileNameにはデータを取り込むCSVファイルのフルパスを指定します。
CSVファイルのフルパスは13行目で取得しています。
'インポートデータのあるCSVファイルの格納先を取得する '⇒CSVファイルの格納先はAccessのデータベースファイルと同じ場所 strPath = Application.CurrentProject.Path & "\data.csv"
HasFieldNames
HasFieldNamesは、インポートするCSVファイルの最初の行がフィールド名を含むかどうかを設定します。Trueの場合、最初の行はフィールド名であるとみなされます。(2行目からデータとみなします)
Falseなら1行目からデータとみなします。(ヘッダは無しと判断)
動作確認
「AccessのデータベースファイルとCSVファイルの例」をご覧ください。
最後に
この記事では、AccessのデータベースにあるテーブルにCSVファイルのデータをインポートする方法についてご説明します。
AccessのデータベースにあるテーブルにCSVファイルのデータをインポートしたいときは本記事を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。