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


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

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

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

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」にして実行をキャンセルします。


実際に動かしてみます。


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



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









comments powered by Disqus