Sono sicuro che è molto semplice, ma non riesco a trovarlo. Nell'evento di chiusura di un modulo di accesso, come posso annullare la chiusura del modulo? Ho un test che conta i record in una tabella. Se quella tabella ha dei record, voglio chiedere all'utente se vuole chiudere o tornare indietro e lavorare con loro. Quindi, come posso cancellare l'evento close?Come cancellare un modulo chiudi in Chiudi evento?
risposta
È possibile utilizzare l'evento 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
Non sono sicuro di aver capito, dovrei passare qualcosa all'evento Form_Unload nell'evento close? – MAW74656
Oh, capisco, metto il test in Form_unload quindi imposta Cancel = True. http://msdn.microsoft.com/en-us/library/aa211464%28v=office.11%29.aspx – MAW74656
Ho aggiunto molte più note su come usarlo. – Fionnuala
Studio e provare questo codice, ha funzionato per me. Sostituisci i nomi delle variabili necessarie con i nomi scelti. Incolla il codice nell'evento form_unload del modulo. ATTENZIONE !!!: Dopo aver eseguito questa operazione si trovano difficoltà ad accedere al tuo modulo in design e il layout vista
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
Usare la "Form_BeforeUpdate (annulla come intero)" evento e di impostare annullare su True.
Si noti che non sarà possibile chiudere affatto a meno che non si aggiunga qualche logica per consentire effettivamente l'aggiornamento del database.
Non modificare il problema per essere la risposta! Questo è molto confuso per qualcuno che legge cosa ha risolto per te. Fornire il codice difettoso e il codice corretto separatamente è una soluzione. –
Ritengo che i moduli associati a MS-Access siano difficili da controllare in modo problematico. Non sono sicuro di cosa stessero pensando gli sviluppatori! – NoChance