プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっています。

フォームにボタンを作成して、指定したフォームをExcelファイルで保存しています。
これをcsvファイルで出力に変更したいのです。(フルパスではない方法)

Private Sub Eccelで保存_Click()
DoCmd.OutputTo acOutputForm, "活動記録", acSpreadsheetTypeExcel9
End Sub

お力添えをお願いいたします。

A 回答 (5件)

そうしましたらコードで記載する場合は



>DoCmd.TransferText acExportDelim, , "活動記録", "c:\活動記録.csv", True
上記のように記入していらっしゃったかと思いますが、"活動記録"を"[クエリ名]"
⇒DoCmd.TransferText acExportDelim, , "クエリ名", "c:\活動記録.csv", True
へ変更すればcsvファイル出力は可能かと思います。

ただ、上記のような記載だと任意の出力先指定やファイル名は選択できません。
下記URLで名前を付けてファイルの保存が載っていますので参考にして見てください。
http://www.accessclub.jp/samplefile/samplefile_2 …
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
>⇒DoCmd.TransferText acExportDelim, , "クエリ名", "c:\活動記録.csv", True
>へ変更すればcsvファイル出力は可能かと思います。
出来ました!!クエリ名にするとはまったく考え付きませんでした。

参考のURLもありがとうございます。
さっそくサンプルプロシージャをコピーペーストして試していますが、
標準モジュールの下記のところで「ユーザー定義型は定義されていません」と
コンパイルエラーが表示されます。

'Excel2000のオブジェクト変数を宣言します。
Dim objXLS As New Excel.Application

こちらは新しい質問で教えていただきたいと思います。
どうぞよろしくお願いいたします。

お礼日時:2011/05/30 17:24

出力したい「活動記録」はテーブル名でしょうか?フォーム名でしょうか?


もしフォーム名である場合は「活動記録」が繋がっているテーブル名は
存在しますか?(クエリで表示元のデータを引っ張っているならクエリ名)

活動記録が存在するテーブル、もしくはクエリで右クリックをしAccessの標準機能の
「エクスポート」にてcsvファイル出力は可能ですか?

ご確認できるようであればご確認下さい。

この回答への補足

回答いただきありがとうございます。
「活動記録」は、フォームです。
元になるクエリを
>右クリックをしAccessの標準機能の
「エクスポート」にてcsvファイル出力
は可能でした。

これをヒントにまた違う方面から考えてみます。
お気づきのことがあれば教えてください。
どうぞよろしくお願いいたします。

補足日時:2011/05/30 14:03
    • good
    • 0

横から失礼致します。



>"c:活動記録.csv"の変更の仕方がわかりません。
と記載がありますが「c:」の次に\(エンマーク)がないのですが
これは記載もれですか?それともコードからそのままコピペしましたか?
確認してみてください。

やりたい内容は、フォーム上にファイル出力用のボタンを配置し
ボタン押下で該当のテーブルまたはクエリの内容をcsvファイルに出力。
ということでよいのでしょうか?
その際、出力先の指定を任意で行いたいということでしょうか?
出力先の指定を任意という場合はファイル名は固定のものですか?
それともダイアログにて出力者によって任意のファイル名をつけさせたいのですか?

最後に、Accessは2000か2002か2003ですか?

この回答への補足

回答いただきありがとうございます。

>c:」の次に\(エンマーク)がない
お恥ずかしい、抜けていました。。。
そこで C:\Documents and Settings\watanabe\デスクトップ\活動記録.csv
としてみましたがエラーになりました。

>やりたい内容は、フォーム上にファイル出力用のボタンを配置し
>ボタン押下で該当のテーブルまたはクエリの内容をcsvファイルに出力。
>ということでよいのでしょうか?
>その際、出力先の指定を任意で行いたいということでしょうか?
>その際、出力先の指定を任意で行いたいということでしょうか?
>それともダイアログにて出力者によって任意のファイル名をつけさせたいのですか?

まさにその通りです。
現在、上記の操作をExcelファイルへ出力していますが、こちらは問題ありません。
何故csvファイルではエラーになるのか困惑しています。
アドバイスよろしくお願いいたします。

補足日時:2011/05/27 13:25
    • good
    • 0
この回答へのお礼

申し訳ありません、補足です。
Accessのバージョンは2003です。ただ今後2007以降に移行する可能性があります。

お礼日時:2011/05/27 13:26

こちらでは、エラーになりません。


カレントディレクトリはどこになっているでしょうか?
Vista以降はC:\やC:\program Files内にはユーザーファイルを直に書き込めません。
データベースファイルをユーザーディレクトリに移動して実行してみていただけませんか。

この回答への補足

再度の回答ありがとうございます。
カレントディレクトリはデスクトップに置いたままで操作しているのですが、
どうしてもエラーになります。
他にも何か原因があってできないのかもしれません。
別の方面からも原因を探ってみます。

補足日時:2011/05/24 17:53
    • good
    • 0

http://www.geocities.jp/cbc_vbnet/kisuhen/docmd. …
Docmd の Transfertext メソッドかなあ。filenameは相対パスで書けるはず。
    • good
    • 0
この回答へのお礼

早々にお返事ありがとうございます。
下記の状態で動かしてみましたが、コードエラーになります。
DoCmd.TransferText acExportDelim, , "活動記録", "c:活動記録.csv", True

ファイル名、パスは書き出す人が決められるようにファイルに出力画面を表示したいのですが
"c:活動記録.csv"の変更の仕方がわかりません。
もしくは、何か足りないのでしょうか。
どうぞアドバイスよろしくお願いいたします。

お礼日時:2011/05/23 10:40

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す