こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【Access2000】VBAコーディング Excelデータでエクスポート

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

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

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

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

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

よろしくお願いします。

投稿日時 - 2007-02-22 15:11:00

QNo.2774638

すぐに回答ほしいです

質問者が選んだベストアンサー

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

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

MSDNからの引用
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/off2000/vbaac/html/acactTransferSpreadsheet.asp

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

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

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

に変更すればよいと思いますが・・・Q_tempソースとは、テーブルですか?クエリーですか?

投稿日時 - 2007-02-22 16:59:59

お礼

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

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

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

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

投稿日時 - 2007-02-22 20:08:18

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問