【Access VBA】csvデータを取り込み、データベーステーブルを作成するプログラム


はじめに

csvファイルを取り込み、Accessデータベースのテーブルを作成するVBAのサンプルプログラムを作った。

入力csvデータ

FieldData.csv
会員番号,名前,住所,登録日付

取り込まれたcsvデータは、テーブルのフィールド名になる。

サンプルプログラム

Option Compare Database

'csvファイルからフィールド情報を取得してテーブル作成
Sub Sample()

    Dim db As Database
    Dim Newtb As TableDef
    Dim tmp As Variant

    Set db = CurrentDb
  '作成したいテーブルの名前を入力
    Set Newtb = db.CreateTableDef("TestTable")

    Dim buf As String

  '取り込みたいcsvのパスを入力
    Open "C:\Folder\FieldData.csv" For Input As #1
        Do Until EOF(1)
            Line Input #1, buf
            tmp = Split(buf, ",", , vbTextCompare)

            '-------------------------------------------------------
            'フィールドのパラメータを設定する
            With Newtb
                .Fields.Append .CreateField(tmp(0), dbInteger, 6)
                .Fields.Append .CreateField(tmp(1), dbText, 10)
                .Fields.Append .CreateField(tmp(2), dbText, 255)
                .Fields.Append .CreateField(tmp(3), dbDate)
            End With
            '-------------------------------------------------------
            'フィールドのパラメータ設定をしないならこちらを使う(とりあえずテーブルを作成したい時など)
            'For i = 0 To UBound(tmp, 1)
                'Set fld = Newtb.CreateField(tmp(i), dbText, 255)
                'Newtb.Fields.Append fld
            'Next
            '-------------------------------------------------------

            'テーブルの作成
            db.TableDefs.Append Newtb

            DoCmd.OpenTable "TestTable", acViewDesign
        Loop
    Close #1

End Sub

結果