Access csvデータ取り込み

①テーブルの作成

 「TBL_インポート」を作成する

 →csvデータがこのテーブルに挿入される

②まずインポート定義を作成する

 →とりあえず1ファイルだけ 「TBL_インポート」 にインポートしてみて

 それを「csvインポート定義」という名前で保存する。

 

③モジュールの作成

 

C:\Temp

 ├─1

 │ └─a.csv

 ├─2

 │ └─b.csv

 └─3

     └─c.csv

 
みたいなフォルダ構成だとして
サンプルソース

 

 

Function Main()

  ListUp_FolderList ("C:\Temp")

  MsgBox "おわり"

End Function

 

'Folder の一覧を取得する

Sub ListUp_FolderList(FolderSpec)

  Dim Folder_Collection As Object

  Dim Folder_List As Variant

  Set Folder_Collection = CreateObject("Scripting.FileSystemObject") _

                        .GetFolder(FolderSpec).SubFolders

  For Each Folder_List In Folder_Collection

    ListUp_FileList (Folder_List)

  Next

End Sub

 

'File の一覧を取得する

Sub ListUp_FileList(FolderSpec)

  Dim File_Collection As Object

  Dim File_List As Variant

  Set File_Collection = CreateObject("Scripting.FileSystemObject") _

                       .GetFolder(FolderSpec).Files

  For Each File_List In File_Collection

    DoCmd.TransferText acImportDelim, "csvインポート定義", "TBL_インポート", File_List, True

  Next

End Sub

「csv2Table」という名前で保存する
 
 
④マクロの作成
 新規作成
 アクション→プロシージャの実行
 プロシージャ名→「csv2Table」のMain関数までたどって「OK」
 「csv2Table」という名前保存
 
⑤マクロ「csv2Table」の実行
 実行すると次々にcsvが「TBL_インポート」にインポートされていく
 
 
インポート定義

http://office.microsoft.com/ja-jp/access-help/HA001226307.aspx

File / Folder 一覧取得

http://www.k1simplify.com/vba/tipsleaf/leaf270.html

DoCmd.TransferTextメソッド