HOME > 即効テクニック > AccessVBA > ファイル操作・他アプリケーションとの連携 > テキストファイルのデータをインポートする

即効テクニック

ファイル操作・他アプリケーションとの連携

テキストファイルのデータをインポートする

(Access 2000/2002/2003)
● 概要 ●
構文  expression.TransferText(TransferType, SpecificationName, TableName, 
			      FileName, HasFieldNames, HTMLTableName,
                              CodePage)


設定項目             内容
expression	     DoCmdオブジェクト[省略不可]
TransferType	     変換の種類をAcTextTransferTypeクラスの定数で指定
		    [省略可能]
SpecificationName    インポート定義名を文字列式で指定[省略可能]
TableName	     Accessテーブル/クエリの名前を文字列式で指定[省略可能]
FileName	     テキストファイルのパス名を文字列式で指定[省略可能]
HasFieldNames	     テキストファイルの1行目をフィールド名とするか否かを指定
  		    [省略可能]
HTMLTableName	     HTMLファイル名を文字列式で指定[省略可能]
CodePage	     コードページで使われる文字セットの名前を指定
		    [省略可能]


*.txt、*.csv、*.htmlなどのテキストファイルを、Accessのテーブルやクエリに取り込みます。引数に次の表の中のacImportDelim、acImportFixed、acImportHTMLのいずれかを指定します。引数を省略すると、acImportDelimを指定したこととなり、区切り記号でフィールドを分割してデータを取り込みます。

・引数に指定する定数(AcTextTransferTypeクラス)

定数		説明
acExportDelim	カンマ、タブなど区切り記号つきエクスポート
acExportFixed	固定長エクスポート
acExportHTML	HTMLエクスポート
acExportMerge	Word差し込みデータエクスポート
acImportDelim	カンマ、タブなど区切り記号つきインポート(既定値)
acImportFixed	固定長インポート
acImportHTML	HTMLインポート
acLinkDelim	カンマ、タブなど区切り記号つきリンク
acLinkFixed	固定長リンク
acLinkHTML	HTMLリンク

引数にTrueを指定すると、テキストファイルの1行目をフィールド名として取り込みます。
引数を省略した場合、Falseが指定されたこととなり、すべての行をデータとして取り込みます。引数には、インポートするHTMLファイル内のテーブルあるいは一覧の名前を文字列式で指定します。
引数にacImportHTMLを指定した場合のみに有効です。
引数を指定しないと、HTMLファイル内の最初のテーブルあるいは一覧がインポートされます。
HTMLファイル内のテーブルあるいは一覧の名前は、タグで指定されるテキストで決定されます。同じ名前のテーブルあるいは一覧が複数ある場合は、それぞれのテーブルあるいは一覧の名前の末尾に番号を追加して(たとえば、「顧客1」、「顧客2」のように)区別されます。


● サンプル ●
'TransferTextExportSampleを実行してから実行
Sub TransferTextImportSample()
    'エラーの場合、myErr: へ
    On Error GoTo myErr
    '「C:\出力顧客テーブル.txt」のデータを
    '[取込顧客テーブル]を作成して取り込む
    DoCmd.TransferText acImportDelim, , "取込顧客テーブル" _
            , "C:\出力顧客テーブル.txt"
    MsgBox "「出力顧客テーブル.txt」を[取込顧客テーブル]として" _
           & "取り込みました"
    'プロシージャを終了
    Exit Sub
myErr:
    MsgBox "サンプルTransferTextImportSampleの実行前に、" _
        & "TransferTextExportSampleを実行し、" _
        & "「C:\出力顧客テーブル.txt」を作成して下さい。"
End Sub