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

はじめに

テーブルにテキストファイルをインポートする際、インポートウィザードを使わず、
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
・メッセージボックスで終了

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.