• 締切済み

アクセスから自動で(マクロ化)csv形式で出力したいです。

こんにちは。いまアクセスのプログラムで困っています。 もし、お分かりでしたらお返事願います。 ymd = Format(Now(), "yyyymmdd") DoCmd.OutputTo acTable, "テーブル名", acFormatXLS, "D:\XXXX" & "XYXY" & ymd & ".csv", True, "" これでやると、うわべだけのCSV形式で実は.XLSになっていたということらしいのですが、こういう形でCSV形式で出力する方法は無いでしょうか?

みんなの回答

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

まず先に「エクスポート」メニューにてカンマ区切り出力のエクスポート定義を作っておきます。 エクスポート定義の作り方は以下です。 ・データベースウィンドウにて出力したいテーブルの名前を選択し青色反転表示させる ・ファイル、エクスポートとクリック。ダイアログが出ます。 ・とりあえず場所を指定して、ファイルの種類を「テキストファイル」に変えて、「保存」ボタンを押す。ウィザードが起動します。 ・左下の「設定」ボタンを押し、カンマ区切り設定などを施す。 ・閉じないで「保存」ボタンを押す。ダイアログが出てエクスポート定義名を入力するように促されます。 ・デフォルトでの名前をAccessが勝手に作ってくれるので、もしそのままでよければOKを押す。ここでの名前を以降のVBAコード内で使用します。ただし、Accessはテーブル名+テーブル定義という名前に自動設定してくれる、テーブル名と「テーブル定義」という文字列の間に半角スペースが入っているので、注意。VBAコード内でこの半角スペースを忘れると動作しなくなってしまう。 うっとおしかったらこの段階で半角スペースを削除しておく。 ・名前が決まったらOK ・ok ・ウィザードをキャンセルする。 で、コマンドボタンのクリックイベントなどに以下のように書くと、カンマ区切りのテキストファイルが出力されます。 ご質問でご提示いただいたコードのように拡張子をcsvにするコードを書けば、csvになります。 DoCmd.TransferText acExportDelim, "エクスポート定義の名前(半角スペースなどに注意)", "出力したいテーブルの名前", "出力したい場所のフルパス(ファイル名とその拡張子も含む)", -1

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

DoCmd.TransferText で良いと思います・・。 http://yokohama.cool.ne.jp/machida/list.htm

cooo
質問者

補足

でもカンマ付でないとだめなんですよ。

関連するQ&A