- ベストアンサー
Access2000での質問
Access2000で、あるデータベースの簡単な検索システムを作り社内で利用しております。その中で、テーブル作成クエリを使用して絞り込みを行うものがあるのですが、毎回「既存でテーブルはクエリを実行する前に削除されます。よろしいですか」という確認メッセージが出しまいます。頻繁に使用するため、このメッセージが非常にうっとうしいので、でないようにする方法はありますか? よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
mantaro1さんの指摘通り、オプションのチェックを外してもダメでした。 でも、No.1の人の方法だと、この確認ダイアログの既定のボタンは「いいえ」なので、そのまま「いいえ」が選択され、クエリの実行がキャンセルされてしまうと思います。 したがって、このテーブル作成クエリの実行の直前に、既存のテーブル(クエリで作成するテーブル)を削除してやればいいと思います。 この場合は、私(No.3)やmantaro1さん(No.2)の方法でOKです。
その他の回答 (6)
- bobble
- ベストアンサー率34% (111/323)
すいません。maruru01さんのおっしゃる通りですね。 ”既存でテーブルはクエリを実行する前に削除されます。よろしいですか” のメッセージの場合、フォーカスのデフォルトは”いいえ”になっているので DoCmd.SetWarnings False を使うと、”いいえ”のままエンターする事に なるので実行がキャンセルされますね。 テーブル作成クエリはあまり使用しないので、忘れてました。 maruru01さんが言われるように、この方法の場合は実行前にテーブルを削除すればいいですね。 テーブルの項目が固定で毎回変動しないのであれば、削除クエリと追加クエリで やる方法もあると思います。 その場合はDoCmd.SetWarnings Falseが使えます。
- toshima
- ベストアンサー率12% (3/25)
イベントプロシージャやモジュールでVBAを入力する画面で Docmd.SetWarnings False Docmd.OpenQuery "クエリー名" Docmd.SetWarnings true と入力してください。 Falseだけにすると、それ以後エラーメッセージが出なくなりますので注意してください。 Trueを入れれば、それ以後のメッセージは出るようになります。 基本は、FalseとTrueをセットにしましょう。 あとこの命令は、すべてプログラムが出来て間違いなく動くようになってから入力すると良いでしょう。
お礼
初心者なもので、イベントプロシージャやモジュールでの入力は行った事がありません。このご回答については、もう少し上達してから試してみたいと思います。
- mantaro1
- ベストアンサー率48% (19/39)
失礼しました。下記の私の回答ではメッセージが表示されます。 #1の方の方法ならば確実にメッセージは表示されません。 マクロでは、「メッセージの設定」で「いいえ」を使用してやれば よいです。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 Accessのメニューの[ツール]→[オプション]→[編集/検索]タブの右上の[確認]の3つの項目(の内、必要な項目)のチェックを外せばいいと思います。 もし外しっぱなしがダメなら、コードで書けばいいでしょう。 プログラムの起動時(最初に開くフォームのLoadイベントとか)で、チェックを外し、終了直前(Access終了処理の直前とか)でチェックを戻します。 'アクションクエリの確認の変更 Application.SetOption "Confirm Action Queries", flg 'オブジェクトの削除の変更 Application.SetOption "Confirm Document Deletions", flg 'レコードの変更の確認の変更 Application.SetOption "Confirm Record Changes", flg チェックを外す場合は、flgにFalse、チェックを入れる場合は、flgにTrueをセットする。
- mantaro1
- ベストアンサー率48% (19/39)
「ツール」-「オプション」の中の「編集/検索」タブに 「確認」という項目があります。その中の「オブジェクトの削除」・「アクションクエリ」 のチェックを外せばメッセージは出ないようになります。 なお、この設定はアプリケーション単位で持っていますので、 そのファイルをコピーしても、コピー先でも設定は反映されます。
- bobble
- ベストアンサー率34% (111/323)
テーブル作成クエリを実行されているのは、モジュールですか?マクロですか? モジュールなら DoCmd.SetWarnings False という一文を先頭にいれておいてやればメッセージは表示されなくなります。 マクロの場合はアクションからメッセージの設定を選択してメッセージの表示を [いいえ]にしてやればよかったと思います。(マクロの方はちょっと自信がないですが・・・) メッセージが表示されなくなるというか、メッセージがでた時に自動でエンターキーを押してくれるようなものと思ってもらったらいいと思います。
お礼
回答ありがとうございます。初めて「教えてgoo」で質問して、昼食中に6件も回答が来ていて感動しました。最初に目に留まったmaruru01(NO.5)さんの回答で一発解決しました。締め切って、ポイントを発行した後に、bobbleさんの方法(マクロ使用)でも可能なことが分かりました。ポイント発行できなくてすいません。はじめての投稿につきお許しを。
お礼
大変助かりました。おっしゃる通りの方法で一発解決です。 bobble(NO.1)さんの方法でも同様の結果が得られました。 ありがとうございました。