ACCESS TransferTextでテキストファイルを扱う方法
ACCESSではデータベースへのデータの取込や出力にテキスト、特にcsvファイルを使うことができます。
csvファイルの入出力に使用するのが、DoCmd.TransferTextメソッドです。
今回は、ACCESS VBAでTransferTextを使ってテキストファイルのインポートやエクスポートを行う方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。
TransferText
TransferTextはACCESSに対してcsvファイルをインポート、エクスポートするためのメソッドです。
以下の構文で使用します。
本当はもう少し引数がありますが、最小限使用するものでご説明します。
DoCmd.TransferText 変換の種類 , 定義ファイル , テーブル名 , ファイル名 , フィールド行の有無
それぞれの引数の説明は以下の通りです。
変換の種類 | インポートするか、エクスポートするのかを選択します。 csvファイルのインポートの場合は「acImportDelim」を設定します。 エクスポートの場合は「acExportDelim」を設定します。 |
定義ファイル | 定義ファイルを使ってインポート / エクスポートする際に、定義ファイルの名称を使用します。 |
テーブル名 | csvファイルをインポート / エクスポートする対象のテーブル / クエリ名を指定します。 |
ファイル名 | インポート / エクスポートするcsvファイルの名称を記載します。 ファイルパスを含めてフルパスで記載する必要があることに注意ください。 C:\Data\export.csv、等 |
フィールド行の有無 | csvファイルの最初の行をACCESSのフィールド名の行として扱うか否かを指定します。 Trueにするとインポート時には1行目をフィールド名として扱い、エクスポート時には1行目にフィールド名が入ります。 |
1つ目の引数でインポートかエクスポートかを選択することができ、どちらにも利用することができます。
インポート
インポートを行う時のサンプルのプロシージャを記載します。
DoCmd.TransferText acImportDelim, "売上インポート定義", "TMP_売上", DLookup("設定値", "MST_設定", "設定名 = 'ファイルパス'") & "\" & file_name, False
それぞれの引数の指定を説明します。
変換の種類 | acImportDelimでインポートを指定しています。 |
定義ファイル | 売上インポート定義というインポート定義ファイルを事前に作成して指定しています。 インポート定義ファイルとは、csvファイルをACCESSにインポートする際に、csvファイルのどの列をテーブルのどのフィールドにインポートするか、またそのデータ型などを指定したファイルです。 |
テーブル名 | インポート先としてTMP_売上というテーブルを指定します。 |
ファイル名 | 今回は変数を使ってい指定しています。 DLookUp関数を使ってテーブルに格納されたファイルパスと、変数で指定したFile_nameを使ってファイルの名称をテキスト型で作成しています。 このように関数や変数を使っての指定も可能ですが、最終的にテキスト型のデータになるように注意してください。 |
フィールド行の有無 | Falseを指定し、csvファイルの1行目からデータ行として扱います。 |
実際にTransferTextを使ったcsvファイルのインポート機能を作成する方法を以下の記事にまとめていますので、参照ください。
エクスポート
同様に、エクスポートについてもサンプルのプロシージャを示します。
DoCmd.TransferText acExportDelim, , "TRN_売上サンプル", FileName, True
変換の種類 | acExportDelimでエクスポートを指定しています。 |
定義ファイル | 定義ファイルは未指定のため空白にしています。 |
テーブル名 | エクスポートするテーブルとしてTRN_売上サンプルというテーブルを指定します。 |
ファイル名 | FileNameという変数に出力するファイルパスをフルパスで格納しています。 |
フィールド行の有無 | Trueを指定し、ACCESSのテーブルのフィールド名をcsvファイルの1行目に出力します。 |
TransferTextを使ったcsvファイルへのエクスポート機能作成方法を以下の記事にまとめてあります。
以上、TransferTextでテキストファイルを扱う方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。