2019.04.30
はじめに
アプリの設計者は、ユーザにフォーム上の[終了]ボタンをクリックしてアプリを終了させるよう[終了]ボタンを設置します。
ところが、設計者の意思に反してAccessの本体の右上にある[×]ボタン(閉じる)ボタンをクリックしてAccessを終了するユーザがいます。
フォーム上に設置した[終了]ボタンが単にアプリを終了させるだけなら特に問題がないのですが、アプリを終了する前に何かしらの処理を設定しているとしたら、その処理が行われずにAccessが終了してしまうことになります。
Accessの[×]ボタンで終了させず、フォーム上に設置した[終了]ボタンでAccessを終了させる方法です。
【AD】
フォームの[×](閉じる)ボタン
フォームやレポートにも[×]ボタンがありますが、プロパティから簡単に[×]ボタンを無効にすることができます。
設定は下の図のとおり、フォームやレポートのプロパティの「閉じるボタン」を「いいえ」に設定することで無効にすることができます。
Access本体の[×]ボタンも簡単に無効化できるようになればいいと思うのですが、[×]ボタンでしかAccessが終了できないのでプロパティで無効にできないのでしょう。
仕組み
フォーム上にチェックボタンを設置し、処理はVBAで記述します。
1 [終了]ボタンがクリックされたことがわかるように、フォーム上にチェックボックスを用意
2 [終了]ボタンをクリックしたときに、チェックボックスにTRUEを代入
3 Accessが終了するときにチェックボックスを参照(Unload時)
4 チェックボックスの状態が
False(チェックがないとき)→、メッセージボックスを表示して、処理を中止
True(チェックがあるとき)→ Access終了
まとめ
Access本体の閉じるボタンを使えないようにする方法は、他にもありますが、この方法が簡単ではないかと思います。
参考として、運用時にはチェックボックスのプロパティで「可視」を「いいえ」にして、チェックボックスを見えないようにしたほうが見栄えがいいかもしれません。
【AD】
アメリカ・カルフォルニア探訪
ジョシュワ・ツリー国立公園