web-dev-qa-db-ja.com

Closeイベントでフォームのクローズをキャンセルするにはどうすればよいですか?

これは非常に簡単だと思いますが、見つかりません。アクセスフォームのクローズイベントで、フォームのクローズをキャンセルするにはどうすればよいですか?テーブル内のレコードをカウントするテストがあります。そのテーブルにレコードがある場合、ユーザーに閉じるか、戻って操作するかを尋ねたいと思います。では、どうすればクローズイベントをキャンセルできますか?

9
MAW74656

Unloadイベントを使用できます。

GlobalVar ButtonClicked

Private Sub Form_Open(Cancel As Integer)
     ButtonClicked = False
End Sub

Private ClickMe_Click(Cancel As Integer)
     ButtonClicked = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
     If Not ButtonClicked Then
         Cancel = True
     End if
End Sub  

データベースオブジェクトのイベントの順序

12
Fionnuala

「Form_BeforeUpdate(整数としてキャンセル)」イベントを使用し、cancelをTrueに設定します。

実際にデータベースの更新を許可するロジックを追加しない限り、単に閉じることができないことに注意してください。

0
rogsonl

このコードを研究して試してみてください、それは私のために働きました。必要な変数名を選択した名前に置き換えます。フォームのform_unloadイベントにコードを貼り付けます。警告!!!:この操作を実行すると、デザインビューとレイアウトビューでフォームにアクセスするのが困難になります。

    Private Sub Form_Unload(Cancel As Integer)
        userresponse = MsgBox("Are you sure you want close? All your work wouldn't be saved", vbYesNo, "Database Information")
        Select Case userresponse
        Case 6
            Cancel = False
            'this line opens another form in my own case
            DoCmd.OpenForm "EngMenu"  

        Case 7
            Cancel = True
            'this line keeps my own form open in my own case
            DoCmd.OpenForm "UpdateForm"


        Case Else:

            MsgBox "You are not allowed to perform this operation", vbInformation, "Database Information"
        End Select
    End Subenter code here
0
user28864