2017年9月27日

【Access】フォームを[×]バツボタンで閉じさせないようにする


システムを開発していると、たまにフォームを[×]バツボタンで閉じさせたくないといった場合が出てきます。

たとえば、このようなフォームがあったとします。

「閉じる」ボタン(buttonClose)をクリックする以外は、フォームを閉じられないようにします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private closeFlag As Boolean
 
Private Sub Form_Load()
 
    closeFlag = False
     
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
 
    If closeFlag = False Then
         
        Cancel = True
         
        MsgBox "[閉じる]ボタンで閉じてください。", vbExclamation, "注意"
     
    End If
     
End Sub
 
Private Sub buttonClose_Click()
 
    'フラグをTrue
    closeFlag = True
     
    'フォームを閉じる
    DoCmd.Close acForm, Me.Name
 
End Sub
まず、「閉じる」ボタンが押されたかどうかの判定をするフラグ(closeFlag)を設けます。次に「閉じる」ボタンのクリックイベントプロシージャでcloseFlag=Trueにして、フォームをCloseします。そして、フォームの読み込み解除時イベントプロシージャでcloseFlag=Falseの場合に「Cancel = True」にして実行をキャンセルします。


実際に動かしてみます。


[×]ボタンをクリック。



メッセージが表示されました。








スポンサーリンク



Follow Me on Pinterest
Clip to Evernote