プロが教えるわが家の防犯対策術!

こんにちは。いまアクセスのプログラムで困っています。
もし、お分かりでしたらお返事願います。

ymd = Format(Now(), "yyyymmdd")

DoCmd.OutputTo acTable, "テーブル名", acFormatXLS, "D:\XXXX" & "XYXY" & ymd & ".csv", True, ""


これでやると、うわべだけのCSV形式で実は.XLSになっていたということらしいのですが、こういう形でCSV形式で出力する方法は無いでしょうか?

A 回答 (2件)

まず先に「エクスポート」メニューにてカンマ区切り出力のエクスポート定義を作っておきます。



エクスポート定義の作り方は以下です。

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



で、コマンドボタンのクリックイベントなどに以下のように書くと、カンマ区切りのテキストファイルが出力されます。
ご質問でご提示いただいたコードのように拡張子をcsvにするコードを書けば、csvになります。


DoCmd.TransferText acExportDelim, "エクスポート定義の名前(半角スペースなどに注意)", "出力したいテーブルの名前", "出力したい場所のフルパス(ファイル名とその拡張子も含む)", -1
    • good
    • 0

DoCmd.TransferText で良いと思います・・。



http://yokohama.cool.ne.jp/machida/list.htm

この回答への補足

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

補足日時:2003/05/16 22:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!