No.3ベストアンサー
- 回答日時:
普通に考えれば、
クエリを実行する毎になにか変更箇所があるから「保存しますか?」、
さらに、開いたクエリが上書き保存できないから「名前つけて保存」。
オートナンバーとか使っていますか。
実行しようとしたクエリの状況をもう少し詳しくお願いします。
クエリのデザインから実行した?
フォームからボタン押下などのマクロから実行した?
No.2
- 回答日時:
選択クエリを直接開くときに起こるのならば、
一旦、新しいファイルにすべてのオブジェクトを
取り込んで、再度選択クエリを開き同じ現象が
起こるか確認してみてください。
起こらなければ、元のファイルが壊れかけて
いるかもしれません。
また、元のファイルを適正化して、選択クエリを
開いてみてください。
いろいろな場合が考えられますが、今の
ところこのような感じですが。
No.1
- 回答日時:
> どうすれば元の『保存しますか』って聞いてくる形になるのでしょう?
恐らく、フォームなどでVBAを使用されていて、「DoCmd.SetWarnings」で
設定を切り替えたのが、そのままになっているのだと思います。
とりあえず、一時的な対症療法としては、
1)Ctrl+Gキーの同時押しなどで、イミディエイト ウィンドウを表示
(『起動時の設定』でショートカットキーを無効にしている場合は、
一旦その設定を解除するか、一旦ファイルを閉じた後、Shiftキー
を押しながら再起動:
Access2003などでセキュリティの警告が出る場合は、そこから
Shiftキーを押し始めます)
2)以下の式を入力したら、Enterキーを押して次行に移動
DoCmd.SetWarnings True
で、設定が解除されると思います。
(単純にMDBファイルの再起動でいける可能性もありますが、最初に
展開するフォームの「開く時」イベントが問題だとすると解決しない
ので、念のため、上記手法をご紹介しました)
根本的な解決としては、Visual Basic Editor(VBE)の画面で、Ctrl+Fキー
の同時押しなどで「DoCmd.SetWarnings」を検索したら、以下のように、
Falseに設定した後は必ずTrueに設定し直すようにコードを修正します。
(DoCmd.SetWarningsを使用している場所の全てで、です(汗))
【現状の例】
Private Sub 削除_Click() '削除クエリを実行するコマンドボタンを想定
If MsgBox("削除を実行しますか?",vbYesNo) = vbNo Then Exit Sub
DoCmd.SetWarnings False '確認メッセージの非表示化
DoCmd.OpenQuery "MQ1_初期化" '削除クエリ
MsgBox "実行しました。"
End Sub
【修正の例】
Private Sub 削除_Click() '削除クエリを実行するコマンドボタンを想定
'エラー発生時は「エラー処理」の行に飛ばす
On Error Goto エラー処理
If MsgBox("削除を実行しますか?",vbYesNo) = vbNo Then Exit Sub
DoCmd.SetWarnings False
DoCmd.OpenQuery "MQ1_初期化"
MsgBox "実行しました。"
終了処理:
DoCmd.SetWarnings True '確認メッセージを表示する設定に戻す
Exit Sub 'エラー処理に進ませないための対応
エラー処理:
'エラー発生時は、その内容をメッセージボックスで表示
MsgBox Err.Number & ":" & Err.Description
'エラー発生後も「終了処理」を通すことで、必ず「DoCmd.SetWarnings True」
'の処理を実行させる
Resume 終了処理
End Sub
【説明】
修正前のコードでは、「DoCmd.SetWarnings True」を一切行っていないので、
確認メッセージは常に表示されなくなり、今回のご質問のように、保存確認
のメッセージまで省略される形になります。
また、修正前のコードで、「DoCmd.SetWarnings True」を「実行しました。」の
メッセージの辺りに入れていた場合も、クエリに問題があるなどしてエラー
が発生すると、そこで実行が中止されますので、「DoCmd.SetWarnings True」
が実行されなくなります。
こういったことを回避するために、エラー時の処理を、Accessの既定の動作に
任せる代わりに、「On Error Goto ~」によって、自作コードでエラーへの対処
(上ではメッセージの表示)を行った上で、その後に「DoCmd.SetWarnings True」
を必ず行わせるようにすることで、確認メッセージの表示設定がオフになった
ままになるのを防いでいます。
※マクロでの「メッセージの設定」では、確認メッセージの非表示化は、一連の
マクロの終了と同時に元に戻りますが、VBAでは自分で戻さないと戻りません。
もしもマクロからVBAに移った方の場合、注意が必要です。
(私自身が、マクロから入ったクチ)
・・・長くなりましたが(汗)、以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
オブジェクト名 '<table>' が無...
-
Oracle 8i コンマ(,)を含むデ...
-
エクセルからSQLサーバー ...
-
書き方のどこが間違っているか...
-
レポートが開けない。
-
ACCESSで作成したアプリケーシ...
-
PostgreSqlでFunctionの作成に...
-
Accessのレポートが新規作成で...
-
ACCESS ADOでupdateが効かない
-
SQLServerのエラー1069について
-
エクセルマクロで指定範囲内の...
-
バッチファイルからのBCP起動に...
-
Accessの特定のフォームが実行...
-
SQL SERVER の UNION ALL と GR...
-
GROUP BYでエラーが発生
-
ストアドの戻り値(配列)について
-
何も表示されない実行時エラー...
-
ファイアホースモードエラーに...
-
Access2000環境に対応するMid関...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
PostgreSqlでFunctionの作成に...
-
エクセルマクロで指定範囲内の...
-
ACCESS ADOでupdateが効かない
-
ACCESSで作成したアプリケーシ...
-
バッチファイルからのBCP起動に...
-
GROUP BYでエラーが発生
-
オブジェクト名 '<table>' が無...
-
エクセルからSQLサーバー ...
-
Access2000環境に対応するMid関...
-
ACCESS2000ディスクまたはネッ...
-
sqlで文字列を最後に追加したい
-
ストアドの戻り値(配列)について
-
@@ERRORと@@ROWCOUNT併用について
-
Accessのレポートが新規作成で...
-
SQLServerのエラー1069について
-
SQLserverのIF文について
-
クエリの存在チェック
-
全ストアドを対象に文字列を置...
おすすめ情報