「access vba csv 保存先指定」
「access vba csv出力 ファイル名を指定して」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
Access VBAで、CSV(Comma Separated Values)ファイルをエクスポートするときに、保存先のフォルダーや、エクスポートするファイル名を指定する方法を探している方による検索でしょうか。
CSV出力をするサンプルコード
以下のようなコードで、「tbl_在庫」というテーブルを、Cドライブの「temp」フォルダーに、「在庫_20150206.csv」のようなファイル名で出力することができます。
DoCmd.TransferText _
TransferType:=acExportDelim, _
TableName:="tbl_在庫", _
FileName:="C:\temp\在庫_" & Format(Date, "yyyymmdd") & ".csv"
End Sub
サンプルコードの解説
DoCmdオブジェクトのTransferTextメソッドで、
引数TransferTypeに、AcTextTransferType列挙に定義されている定数・acExportDelimを指定すると、
区切りテキストファイルのエクスポートになり、上記のように引数・SpecificationNameを省略した場合に、自動的にCSVファイルとしてエクスポートが行われます。
出力先は引数FileNameで指定
「access vba csv 保存先指定」
「access vba csv出力 ファイル名を指定して」
という検索キーワードで求められていた、CSVファイルの出力先フォルダーやファイル名は、引数FileNameで指定します。
FileName:="C:\temp\在庫_" & Format(Date, "yyyymmdd") & ".csv"
引数・FileNameに指定するファイル名は、拡張子をつけておかないと、
「データベースまたはオブジェクトは読み取り専用なので、更新できません。」
エラーが発生することがあります。
名前付き引数ではなく標準引数の場合
DoCmd.TransferTextメソッドは、たくさんの引数を指定できるので、上記のように名前付き引数を使うほうが、可読性が上がっていいはずですが、名前付き引数を使わないのであれば、
DoCmd.TransferText _
acExportDelim, "", "tbl_在庫", "C:\temp\在庫_" & Format(Date, "yyyymmdd") & ".csv"
または、
DoCmd.TransferText _
acExportDelim, , "tbl_在庫", "C:\temp\在庫_" & Format(Date, "yyyymmdd") & ".csv"
です。
Home » Access VBA » Access VBAでファイル名・出力先を指定してCSVをエクスポートする