この記事では、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週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。





