今回は、Accessからテキストファイルを出力する方法を紹介します。いくつかの方法が用意されていますが、そのうちのひとつであるTransferTextメソッドの使い方です。
ではさっそく構文から見ていきましょう。
DoCmd.TransferText 変換の種類, 定義名, テーブル名, ファイル名, 項目名有無, HTMLテーブル名, 文字セット
たくさん引数がありますが、HTMLファイルの取り込み/書き出しで使う6番目と最後の文字セットについてはあまり使用頻度が高くないので今回は割愛します。青字の5つについて解説をすすめましょう。
変換の種類 | 出力(エクスポート)か取り込み(インポート)かリンクか、対象は可変長か固定長かHTMLか選択できます。今回は可変長テキストの出力を意味するacExportDelimを選択します。 |
定義名 | TransferTextでは予めAccessデータベースに記憶させたエクスポート定義や、外部ファイルに書き出したエクスポート定義を使ってファイル出力を行います。その定義名を指定するための引数です。 |
テーブル名 | 出力したいテーブル名。クエリ名でも可能です。 |
ファイル名 | 出力先のファイル名です。 |
項目名有無 | 出力したいテーブルやクエリの項目名を、出力するファイルの1行目に書き出すかどうかを選択するための引数です。Trueが項目名あり、Falseが項目名なしになります。 |
1.事前準備
今回は「テーブル1」を項目名あり、Tab区切りのテキストファイルで出力してみます。事前準備として表で説明したエクスポート定義を作成します。テーブル1を作成してデータを入力しておき、ナビゲーションバーのテーブル1を右クリック→エクスポート→テキストファイルを選択しましょう。
出力するファイル名を指定して下のオプションは特に指定しないまま(「書式設定とレイアウトを保持したままデータをエクスポートする」にチェックが入っていない状態で)OKボタンを押してください。

テキストエクスポートウィザードが開きます。Tab区切りで出力したいのでオプションは「区切り記号付き」を選択したまま次へボタンを押します。

区切り記号の種類で「タブ」を選択します。先頭行をフィールド名として使うかどうかはこの1回だけの選択肢なのでどちらでも構いません。テキスト区切り記号は今回は初期値の通りダブルクォーテーションとします。次へ進みます。
最後に設定左下の設定ボタンを押します。

表示されたウィンドウで項目単位に細かい設定が可能ですが、今回はそのまま。
ここで「保存」ボタンを押し名前を付けて定義を保存します。これをTransferTextで呼び出して使います。今回は名前を「エクスポート定義」としています。
以上で事前準備は完了です。TransferTextで呼び出してみましょう。
2.テキストファイルを出力

簡単な画面を作り、配置したエクスポートボタンのクリック時の処理に以下のコードを書きます。
DoCmd.TransferText acExportDelim, "エクスポート定義", "テーブル1", "C:\Users\hogehoge\Desktop\テーブル1.txt", True
第2引数で先ほど事前準備で保存した定義を使っていますね。処理を動かして出力結果を確認してみます。

1行目に項目名を含んだTab区切りのテキストファイルが無事出力されました。