Access VBAで、例えばレコードの削除やテーブルの削除といった処理を含む機能を実装し、これを実行した場合、警告メッセージが表示されることがあります。
VBAを作成した人であれば、警告メッセージが出る理由とその処置を問題なくできますが、ユーザーが機能を実行した際に警告メッセージが出ると驚いてしまうことも考えられます。
レコードの削除やテーブルの削除の要否をユーザーに確認する必要がない場合、警告メッセージを予め出さないようにすることが可能です。
今回は、Access VBAで警告メッセージを非表示する方法を紹介します。
VBAでの実装
早速VBAで警告メッセージを出すか出さないかの設定をしてみましょう。
今回用意するAccessファイルには、元々「WT_TEST」というワーキングテーブル(※)が存在し、5件分のデータが格納されているとします。(レコード5件は自由に作成してみてください。)
(※)データベースにおいて、本来「テーブル」はデータを保持するための機能を持つものに対し、本記事で示す「ワーキングテーブル」というものは、データ処理をするために一時的にデータを格納するために使うテーブルのことを指しています。
VBAでコード実装する流れとしては、
・警告メッセージを出さない設定を行う。
・「WT_TEST」のレコード全件を削除する。
とします。
警告メッセージを出すか出さないかの設定で用いるコードは「DoCmd.SetWarnings」メソッドを用います。
DoCmd.SetWarnings (WarningsOn)
WarningsOn引数には「True」か「False」を記入します。警告メッセージを表示する場合は「True」を、警告メッセージを表示しない場合は「False」とします。
レコードを削除するコードは以下の記事で紹介していますので、詳細はそちらをご確認ください。
以上を踏まえて、コードを実装すると次のようになります。
Private Sub SetWarningsOff() '★この1行が警告メッセージをOffとする設定。 DoCmd.SetWarnings False '変数宣言 Dim mySQL As String '変数に実行するSQL文を格納する。 mySQL = "DELETE FROM WT_TEST;" 'DoCmd.RunSQLメソッドを用いてSQL文を実行する。 DoCmd.RunSQL mySQL '★この1行で警告メッセージをOnとする設定。 DoCmd.SetWarnings True End Sub
VBAの実行
コードの実装ができましたので、早速処理を実行してみましょう。予め警告メッセージを表示させないようにしていますので、処理を実行すると一見何も起こっていないように見えますが、「WT_TEST」テーブル内を確認してみてください。予め作っておいたレコードが削除されていると思います。
このように、ユーザーにメッセージを表示させることなくデータ処理をすることができるようになりました。ここで、注意点として「DoCmd.SetWarnings True」をコードの最後に記載しない場合、警告メッセージが表示されない設定が残り、別の処理でも警告メッセージが表示されなくなりますので、必要に応じて処理を追加するようにしてください。
一方で、「DoCmd.SetWarnings True」とした場合は、どのようなメッセージが表示されるかも確認しておきましょう。「WT_TEST」テーブルに5件分のレコードが存在している場合に、処理を実行すると図1に示すような警告メッセージが表示され、「はい」をクリックすることでレコード削除が実行されます。
ワーキングテーブルのように一時的にデータ処理をするためのテーブル内でレコードを削除する分にはデータベースの運用にさほど影響はないと考えられますが、テーブルのレコードを削除するようなときにも警告メッセージを表示させないようにするかは、情報管理の観点からも検討が必要なため、状況に応じて設定をするようにしてください。
まとめ
今回はAccess VBAで警告メッセージを出すか出さないかの設定について紹介をしました。ユーザー側に知らせる必要がない場合には、上手く設定をすることで効率良い処理ができるようになりますので、本記事を参考にAccessデータベースへ活用をしていただければと思います。
今の時代、VBAに限らずプログラミングができるということは、当然のスキルとして広く社会で認知されています。いまだプログラミングが十分にできないという人は、今からでも遅くありません。できるだけ早く基本的なプログラミングスキルを習得することをお勧めします。
ご自身にあった専門書を参考に、実践的なプログラミング・データベース・サーバ、データ分析・機械学習など、システムエンジニアや今後を担うDX人材に必要とされているスキル獲得に向けて基礎から学んでいくことが大切です。
最初につまずきがちな点も、書籍を読みながら試行錯誤して課題解決していくことで、自身のスキルアップを目指すことができます。思い立ったが吉日、是非業務効率の改善に向けてプログラミング学習に勤しんでください!
スポンサーリンク
コメント