- 締切済み
アクセスから自動で(マクロ化)csv形式で出力したいです。
こんにちは。いまアクセスのプログラムで困っています。 もし、お分かりでしたらお返事願います。 ymd = Format(Now(), "yyyymmdd") DoCmd.OutputTo acTable, "テーブル名", acFormatXLS, "D:\XXXX" & "XYXY" & ymd & ".csv", True, "" これでやると、うわべだけのCSV形式で実は.XLSになっていたということらしいのですが、こういう形でCSV形式で出力する方法は無いでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- gadd3
- ベストアンサー率46% (211/451)
まず先に「エクスポート」メニューにてカンマ区切り出力のエクスポート定義を作っておきます。 エクスポート定義の作り方は以下です。 ・データベースウィンドウにて出力したいテーブルの名前を選択し青色反転表示させる ・ファイル、エクスポートとクリック。ダイアログが出ます。 ・とりあえず場所を指定して、ファイルの種類を「テキストファイル」に変えて、「保存」ボタンを押す。ウィザードが起動します。 ・左下の「設定」ボタンを押し、カンマ区切り設定などを施す。 ・閉じないで「保存」ボタンを押す。ダイアログが出てエクスポート定義名を入力するように促されます。 ・デフォルトでの名前をAccessが勝手に作ってくれるので、もしそのままでよければOKを押す。ここでの名前を以降のVBAコード内で使用します。ただし、Accessはテーブル名+テーブル定義という名前に自動設定してくれる、テーブル名と「テーブル定義」という文字列の間に半角スペースが入っているので、注意。VBAコード内でこの半角スペースを忘れると動作しなくなってしまう。 うっとおしかったらこの段階で半角スペースを削除しておく。 ・名前が決まったらOK ・ok ・ウィザードをキャンセルする。 で、コマンドボタンのクリックイベントなどに以下のように書くと、カンマ区切りのテキストファイルが出力されます。 ご質問でご提示いただいたコードのように拡張子をcsvにするコードを書けば、csvになります。 DoCmd.TransferText acExportDelim, "エクスポート定義の名前(半角スペースなどに注意)", "出力したいテーブルの名前", "出力したい場所のフルパス(ファイル名とその拡張子も含む)", -1
- rara_sun
- ベストアンサー率50% (271/539)
DoCmd.TransferText で良いと思います・・。 http://yokohama.cool.ne.jp/machida/list.htm
補足
でもカンマ付でないとだめなんですよ。