2019.04.30
ソフトの設計者は、ユーザにフォーム上の[終了]ボタンをクリックしてソフトを終了させるよう[終了]ボタンを設置します。
ところが、設計者の意思に反してAccessの本体の右上にある[×]ボタン(閉じる)ボタンをクリックしてAccessを終了するユーザがいます。
フォーム上に設置した[終了]ボタンが単にソフトを終了させるだけなら特に問題がないのですが、ソフトを終了する前に何かしらの処理を設定しているとしたら、その処理が行われずにAccessが終了してしまうことになります。
Accessの[×]ボタンで終了させず、フォーム上に設置した[終了]ボタンでAccessを終了させる方法です。
【AD】フォームやレポートにも[×]ボタンがありますが、プロパティから簡単に[×]ボタンを無効にすることができます。
設定は下の図のとおり、フォームやレポートのプロパティの「閉じるボタン」を「いいえ」に設定することで無効にすることができます。
Access本体の[×]ボタンも同様にプロパティで無効化できるようになればいいと思うのですが、[×]ボタンを無効化する設定項目がありません。そこで、Access本体の[×]ボタンを無効にするひと工夫が必要になります。
フォーム上にチェックボタンを設置し、処理はVBAで記述します。
1.[終了]ボタンがクリックされたことがわかるように、フォーム上にチェックボックスを用意
2.[終了]ボタンをクリックしたときに、チェックボックスにTRUEを代入
3.Accessが終了するときにチェックボックスを参照(読み込み解除時)
4.チェックボックスの状態が
False(チェックがないとき)→、メッセージボックスを表示して、処理を中止
True(チェックがあるとき)→ Access終了
Access本体の閉じるボタンを使えないようにする方法は、他にもありますが、この方法が簡単ではないかと思います。
参考ですが、運用時にはチェックボックスのプロパティで「可視」を「いいえ」にして、チェックボックスを見えないようにします。
【AD】