OsvaldoLaviosa ha scritto:
(Anche) per me la gestione dell'evento "Su apertura" mi appare scomodo. Meglio il clic del pulsante cmdButton (da una maschera precedente). Io avrei scritto semplicemente
Private Sub cmdButton_Click()
If MsgBox("..., Convalidare?", vbYesNo) = vbYes Then DoCmd.OpenForm "TuaMaschera"
End Sub
se non ho travisato altri dettagli...
Sono 2 opzioni distinte Osvaldo, entrambe fattibili.
Se usi il tuo suggerimento non serve gestire l'errore, in quanto anticipi l'azione...
Se usi il metodo del Cancel devi gestire l'errore.
Quello che serve chiedersi non è se risulta più o meno scomodo, ma perchè e quando si predilige un metodo all'altro ...!
Lascio a voi la Vostra risposta... vi dico la mia motivata tecnicamente:
Siccome concepisco gli OGGETTI Indipendenti... lascio che ogni Oggetto faccia il suo mestiere senza dovermi preoccupare che gli altri si debbano adeguare.
Quindi se si è abituati a scrivere codice strutturato, la gestione errori la si mette sempre e se si ha una Sub/Function che invoca un OpenForm/OpenReport avremo SEMPRE un Case 2501 che diventa codice STANDARD.
Quindi la Maschera CHIAMANTE non avrà MAI alcuna modifica, e la gestione dell'annullamento rimane limitata all'oggetto singolo senza spalmare codice specifico in giro...