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