これは非常に簡単だと思いますが、見つかりません。アクセスフォームのクローズイベントで、フォームのクローズをキャンセルするにはどうすればよいですか?テーブル内のレコードをカウントするテストがあります。そのテーブルにレコードがある場合、ユーザーに閉じるか、戻って操作するかを尋ねたいと思います。では、どうすればクローズイベントをキャンセルできますか?
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
「Form_BeforeUpdate(整数としてキャンセル)」イベントを使用し、cancelをTrueに設定します。
実際にデータベースの更新を許可するロジックを追加しない限り、単に閉じることができないことに注意してください。
このコードを研究して試してみてください、それは私のために働きました。必要な変数名を選択した名前に置き換えます。フォームの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