Accessでテキストファイルを頻繁にテーブルにインポートする時に・・

  • 0
    Like
  • 0
    Comment

    はじめに

    テーブルにテキストファイルをインポートする際、インポートウィザードを使わず、
    VBAでボタン1つで(ファイルは選択します)インポートするやり方を書いてみました。
    頻繁にテキストファイルをインポートする際にはぜひご参考いただければ・・!

    環境

    Windows7(64-bit)
    Access2013
    

    事前準備

    Accessのインポートウィザードでテキストファイルをインポートします。

    ウィザードを進めていき、次へボタンが押せなくなる最終ページの所で、
    設定ボタンを押すと、インポート定義のダイアログが出ます。
    ここで保存ボタンを押します。
    インポート定義名をつけられますので、任意の名前にします。
    このインポート定義を後程VBAで指定しますので、メモしておきます。

    ※テーブルの項目と、テキストファイルの項目が相違している場合は、
      このインポート定義で項目名を指定したり、スキップしたりできます。
      あらかじめテーブルの項目名を把握しておきます。

    ※インポート定義名の確認は下記の記事でも紹介されています。
      ご参考までに。
      T'sWare Access Tips #528

    動き

    1.取り込みたいテーブルが削除されます。
    2.インポートしたいテキストファイルを指定します。
    3.インポート定義に従ってテキストファイルがテーブルにインポートされます。

    VBA

    Dim SQL As String
    
            SQL = "DELETE T_対象テーブル.* FROM T_対象テーブル;"
            DoCmd.RunSQL SQL
    
            strFileName = GetFileName()
    
            DoCmd.TransferText acImportFixed, specificationname:="対象テーブルインポ定義", FileName:=strFileName, TableName:="T_対象テーブル"
    
            MsgBox ("取込完了しました!")
    
    

    独自解説

    ・変数を宣言
    ・テーブル削除のSQL文
    ・SQL実行
    ・ファイル名取得
    ・インポートのメソッド(TransferText)
    固定長テキスト:acImportFixed
    区切り記号テキスト:acImportDelim
    ・メッセージボックスで終了