- ベストアンサー
accessで作成したクエリーをエクセルに出力する時の問題
アクセスで作成したクエリーをエクセルに出力します。フォームに作成したコマンドボタンを押すと、マクロが起動して、マクロで指定してあるフォルダにエクセルが出力されます。出力先にすでに同名のブックがある場合、「すでファイルが存在しています。上書きしますか。」と、いうメッセージが表示されますが、このメッセージを表示せずに無条件ですでに存在するファイルに上書きをしたいと思います。 メッセージを表示しない方法はありますか。一番いいのは,マクロ内でこのメッセージの非表示を指定できるのがいいのですが。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> フォームに作成したコマンドボタンを押すと、・・・ コマンドボタンを使っているのでしたら、VBAで、直接コマンドボタンの クリック時イベントに下記のように記述します。 (ご存知とは、思いますが、一応手順を書いておきます。) フォームをデザインモードで開き、そのコマンドボタンをダブルクリックして、 コードを指定し、「イベント」タブで「クリック時」をポイントし、 右端の...をクリックします。 コードの一番上と下のコードが、表示されますので、その中に書き込みます。 Private Sub コマンド1_Click() DoCmd.SetWarnings False DoCmd.OutputTo acQuery, "クエリ1", "MicrosoftExcel(*.xls)", _ "c:\test\クエりー1.xls", False, "" DoCmd.SetWarnings True End Sub たぶん、これでメッセージは、出ないと思います。 あとは、マクロの場合ですと、クエリーをテーブルに書き出して、 アクションに「ワークシート変換」で「エクスポート」する方法でしょうね。 メッセージは、出なくて、結果は、同じです。
その他の回答 (3)
- ja7awu
- ベストアンサー率62% (292/464)
No.1です。もうちょっと詳しく書くと、マクロの場合は、 アクションを「メッセージの設定」で「メッセージの表示」を「いいえ」に します。 必要なくなりましたら、必ず「はい」に戻しておきましょう。 VBAでは、 DoCmd.SetWarnings False 'ここにメッセージが出るコードを記述 DoCmd.SetWarnings True
マクロでしたら、エクセル出力のマクロの下に、キー送信アクションを追加してください。キー操作の欄に {enter} とするとキーボードでエンターキーを1回押したことになります。 ファイルが存在しなくて、メッセージが表示されない場合でも、次にエンターキーを操作したことになりますので、ご注意ください。必ずファイルが存在する場合は使えますが、ファイルがあったりなかったりするような場合は使わないほうがいいと思います。 モジュールでしたら DoCmd.OutputTo acOutputTable, "テーブル1", acFormatXLS, "c:\test\test.xls", True, "" とすれば、テーブル1をc:\test\test.xlsというファイルにメッセージなしで出力しますが、c:\test\test.xlsを開いてしまいます。 どちらかご都合のよろしいものがあればよいのですが。
- ja7awu
- ベストアンサー率62% (292/464)
"SetWarnings/メッセージの設定" アクション で出来ると思います。
補足
メッセージの設定でメッセージの表示を「いいえ」にしましたが、 上書き保存をきいてくるメッセージは表示されます。 メッセージの設定はマクロのどこにすればいいのでしょうか。 私は、同じマクロ内のエクセルへ出力する前に設定しました。 設定場所が悪いのでしょうか。