AccessのデータをCSVでエクスポートして他システムで活用することはよくある作業です。
もちろん手動でテーブルを選択してエクスポートすることも可能ですが、通常ルーチン作業になることが多いため、ボタン一つで実行できると楽ですね。
今回はAccessからVBAでCSVファイルにエクスポートするコードはお気軽にコピペしてご利用ください。
AccessからCSV(テキストファイル)を出力する方法
テキストファイルへのエクスポート
コードサンプル
'------------------------------------------------------------
' 処理内容:データCSV出力()
' 引数:なし
' 戻り値:
' 更新:
'------------------------------------------------------------
Private Sub OutputCsv()
Dim strFileName As String
On Error GoTo Err_Exit
strFileName = "C:\work\test.csv"
'エクスポート
DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True
MsgBox "出力しました。", vbOKOnly + vbInformation
Exit Sub
Err_Exit:
MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "OutputCsv()"
End Sub
解説
事前にファイル名(strFileName)をフルパスで指定し、対象のクエリをTransferTextコマンドを使ってエクスポートしています。
DoCmd.TransferText acExportDelim, , テーブル名(クエリー名), 出力ファイル名, True
第2引数 | 区切り記号付きエクスポート |
第3引数 | エクスポート定義名(定義が不要な場合は空白) |
第4引数 | テーブルまたはクエリー名をダブルクォートで囲んで記述 |
第5引数 | 出力ファイル名 |
第6引数 | ヘッダー行を出力する場合はTrue、不要の場合はFalse |
※フォルダやファイル名を指定するプログラムは以下をご参照ください。
AccessのVBAでファイルダイアログからフォルダを指定する方法主にファイルを出力するときなどに使うフォルダ選択ダイアログ。VBAのサンプルコードを公開しています。コピペでどうぞ。...
AccessのVBAでファイルダイアログからファイルを指定する方法Accessの処理において、「EXCELやCSVファイルを指定する」というニーズがあります。
テキストボックスに直接入力やコピペに...
エクスポートする際に文字コードを変更したい
出力後に連携するシステムによっては、文字コードを指定したい場合もあります。
その際は第7引数に文字コードを指定してください。
主要な文字コードは以下の通りです。
識別子 | 文字体系 |
---|---|
指定なし | SHIFT-JIS |
65001 | Unicode (UTF-8) |
1200 | Unicode UTF-16、リトル エンディアン バイト順 (ISO 10646 の BMP)マネージド アプリケーションでのみ使用できる |
932 | SHIFT-JIS |
その他の文字コードはこちらで詳細をご確認ください。
DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True,,65001
注意点
TransferTextコマンドはテキストファイルにエクスポートするコマンドなので出力先のファイル拡張子がテキストファイルと認識されない場合予期せぬエラーになります。
3027:データベースまたはオブジェクトは読み取り専用なので、更新できません。
Access実行時エラー3027
AccessのVBA実行時、「3027:データベースまたはオブジェクトは読み取り専用なので、更...
ABOUT ME