Access(アクセス)でアクションクエリ(テーブルへのデータ更新、削除、追加)を実行すると、その度に下記の様なメッセージが出てウザいです。
これを非表示にする方法がいくつかあるようなので調べてみました。
オプションから非表示設定
御利用中のAccessのオプションから
ココがポイント
下記の3つのチェックを外す
とメッセージが出なくなります。
使用するパソコンで、上記の設定をすれば、以後、作成するAccessデータベースは、アクションクエリが動いてもウザいメッセージが出ないようになります。
しかし、他のパソコンで自作したAccessファイルを動かそうとするとウザい表示が出現します。
つまり
ココに注意
Accessのオプションは設定したパソコンだけ有効
ということになります。
VBA内で表示を消す設定
Accessのオプションの設定をしないでも、VBA内で非表示にすることが可能です。
'アクションクエリ非表示設定 DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM job_uploadbox" DoCmd.OpenQuery "fba_job_uploadbox" DoCmd.RunSQL "DELETE * FROM job_fba" 'アクションクエリ表示設定に戻す DoCmd.SetWarnings True
ただし、これは注意が必要です。
注意ポイント
SubからEndSub内でしか有効ではなく、Callなどで他のルーチンでアクションクエリを動かした時には、メッセージが表示されてしまいます。
1つのAccessソフト内で、フォームが開いた時に、アクションクエリ表示の非表示設定をしても、効果がありません。
つまり、VBA内でアクションクエリの非表示設定をする場合は、
ココに注意
VBAでアクションクエリを実行する毎に非表示コードを入れないとダメ
です。
また、アクションクエリの表示設定(DoCmd.SetWarnings True)の部分は、入れなくても他のVBAには引き継がれずに、Accessのオプション設定になりますので、どっちでもいいようです。
VBAで非表示設定を入れずに・・・
自分のパソコンのAccessのオプションでは、アクションクエリの表示を非表示設定しているので、自作データベースをAccessで作っている時には、ウザい表示がでませんが、他のパソコンに持っていったときに、Accessのオプション設定をしない限りで初期状態では、表示設定になっています。
ましてや、Accessをコンパイルして、ランタイム版で動かそうなんという時には、非表示設定ができるのかも疑問です。
なので、
ココに注意
VBAコード全部を検索かけて、アクションクエリ実行前に、非表示設定(DoCmd.SetWarnings False)を入れました。
この事は、ちょっと覚えておいて、最初からVBAでAccessの仕組みを作成する場合は、アクションクエリを実行する前に、
ココがポイント
確実に非表示設定(DoCmd.SetWarnings False)をいれる
ようにした方がいいようです。