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で質問しましょう!
似たような質問が見つかりました
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) お世話になっています いまクエリを作っています。。 デザインビューの画面の集計の欄で、「グループ化」 4 2022/09/17 17:03
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
GROUP BYでエラーが発生
-
@@ERRORと@@ROWCOUNT併用について
-
ACCESSで作成したアプリケーシ...
-
LIkEで漢字一文字検索でエラー
-
ACCESS2000ディスクまたはネッ...
-
sqlで文字列を最後に追加したい
-
ACCESS ADOでupdateが効かない
-
PostgreSqlでFunctionの作成に...
-
ストアドの戻り値(配列)について
-
レポートが開けない。
-
エクセルマクロで指定範囲内の...
-
エクセルのグループボックス枠...
-
オブジェクト名 '<table>' が無...
-
クエリの存在チェック
-
バッチファイルからのBCP起動に...
-
SQLサーバー接続 特定のPCがWin...
-
SqlDataReaderでの0件判定
-
Access2010 accdbのエラー「ODB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
GROUP BYでエラーが発生
-
SQLのエラー(~付近に不適切な...
-
PostgreSqlでFunctionの作成に...
-
エクセルマクロで指定範囲内の...
-
バッチファイルからのBCP起動に...
-
ACCESS ADOでupdateが効かない
-
エクセルからSQLサーバー ...
-
sqlで文字列を最後に追加したい
-
ACCESSで作成したアプリケーシ...
-
Access2000環境に対応するMid関...
-
SQL SERVER の UNION ALL と GR...
-
ストアドの戻り値(配列)について
-
SQLserverのIF文について
-
エクセルのグループボックス枠...
-
オブジェクト名 '<table>' が無...
-
@@ERRORと@@ROWCOUNT併用について
-
ACCESS2000ディスクまたはネッ...
-
Accessのレポートが新規作成で...
-
SQLServerが存在しないか、アク...
おすすめ情報