ACCESS SetWarningsでメッセージを非表示にする方法

SetWarningsでメッセージを非表示にする方法

ACCESSで更新クエリや追加クエリなどのアクションクエリを動作させると、システムから確認のメッセージが表示されます。

間違いを防止するにはよいのですが、VBAで自動処理をさせている中でシステムメッセージが表示されると動作が中断してしまう懸念があります。

そこで今回は、VBAでアクションクエリを操作した場合のメッセージをSetWarningsメソッドで非表示にする方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

アクションクエリのメッセージ

ACCESSでは追加クエリ、更新クエリ、削除クエリといったテーブルのレコードを変更するクエリを作成することができます。

こうしたクエリを実行する際は、確認メッセージが表示されます。

テーブルのレコードを変更するのは、ACCESSでは非常に影響の大きな行為なので確認メッセージがでること自体はよいと思います。
一方で、VBAで自動処理をさせている中でこうしたメッセージがでると、ACCESSに詳しくない利用者は戸惑ってしまうこともあるでしょう。

そのため、VBAでアクションクエリを実行する際は、アラートのメッセージを表示させないようにすることが可能です。

DoCmd.SetWarningsメソッド

VBAでアラートメッセージの表示・非表示を設定できるのがDoCmd.SetWarningsメソッドです。

以下の構文で利用します。

DoCmd.SetWarnings True or False

DoCmd.SetWarningsの後に、アラートメッセージを出したい場合はTrue、出したくない場合はFalseを設定します。

このTrue / Falseはカッコで囲う必要もありませんし、”(ダブルクォーテーション)も不要です。
いつも書き方を忘れてしまうんですよね。

SetWarningsの利用例

では、実際の利用例をVBAのコードで見てみましょう。


Private Sub 請求フラグクリア_ボタン_Click()
    
    DoCmd.SetWarnings False
    
    DoCmd.OpenQuery "UPD_請求フラグクリア"
    
    DoCmd.SetWarnings True

End Sub

DoCmd.OpenQueryで指定している「UPD_請求フラグクリア」が更新クエリになっています。
このまま実行するとアラートメッセージが出てしまうので、その直前でSetWarningsをFalseにしてアラートを非表示にしています。

その後、アクションクエリ実行後にSetWarningsをTrueに戻しています。

SetWarningを利用する際は、Trueに戻すことを忘れないように、アクションクエリの処理が終わった直後に記述するように注意しましょう。

以上、SetWarningsでメッセージを非表示にする方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。