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

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

VBAにて、あるクエリをエクスポートしたいのですが。
クエリというのは、SQL文を書いています。

strSQL = "SELECT * FROM Q_tempソース"
DoCmd.TransferSpreadsheet acExport, 8, strSQL, "C:\temp.xls", True, ""

実行すると、
オブジェクト'SELECT * FROM Q_tempソース'が見つかりませんでした。オブジェクトが存在していること、名前やパスが正しいこと確認してください。
と表示されて処理が中断されます。

ポイントとしては、登録されているクエリではなく、SQL文でエクスポート内容を指定しているからかと思うのですが、
どのように修正すればよろしいでしょうか?

よろしくお願いします。

A 回答 (1件)

DoCmd.TransferSpreadsheetアクションのヘルプ読まれました?



そこの指定できるものは、

MSDNからの引用
http://msdn.microsoft.com/library/ja/default.asp …

> Table Name
> テーブル名
中略
> Access 2000 では、このアクションを使用するときに、SQL ステート
> メントを使用してエクスポートするデータを指定することはできませ
> ん。SQL ステートメントを使用する代わりに、クエリを作成してから
> 、そのクエリの名前をこの引数に指定する必要があります。

で、テーブル名かクエリ名しか指定できません

> strSQL = "SELECT * FROM Q_tempソース"
strSQL = "Q_tempソース"

に変更すればよいと思いますが・・・Q_tempソースとは、テーブルですか?クエリーですか?
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

ヘルプは目を通したのですが、完全に把握できずにいました。

Q_tempソースとはクエリのことでした。
> strSQL = "SELECT * FROM Q_tempソース"
>strSQL = "Q_tempソース"
>に変更すればよいと思いますが・・・Q_tempソースとは、テーブルで>
>すか?クエリーですか?

なるほど、そういうやり方もありますね。
実際には、
SQL文でテーブルの削除・作成を行いそのテーブルを指定することで解決はしました(決してシンプルなソリューションではないのですが)。
しかし、有意義な情報ありがとうございました。

お礼日時:2007/02/22 20:08

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