Buonasera. Ho creato la maschera principale che si chiama Avvio con spostamento schede orizzontali su due livelli orizzontali e verticali a sinistra.
Attualemente la maschera ha un pulsante orizzontale e uno verticale.
Qullo orizzontale apre una maschera chiamata A0000_inserimento dati materiali
Quello verticale apre una maschera chiamata A0030_modifica_materiale
Supponiamo di essere sulla maschera A0030_modifica_materiale. Se per caso si preme il pulsante orizzontale che quindi mi riporta il focus sulla maschera A0000_inserimento dati materiali prima di avere terminato le operazioni all'interno della maschera A0030_modifica_materiale il programma si blocca.
In un primo momento avevo risolto abilitando e disabilitando i due pulsanti a seconda delle necessità, ma poi ho riflettuto che questo metodo non sarà fattibile in futuro quando le maschere saranno molteplici.
Allora ho provato ad intercettare l'errore in questo modo: sull'evento unload della maschera A0030_modifica_materiale ho inserito questo codice in VAB
Private Sub Form_Unload(Cancel As Integer)
If IsNull(Form_A0030_Modifica_materiale!Combo_sottoclasse_modifica) = False Then
MsgBox "procedura di uscita non corretta. Premi il tasto Aggiorna", 48, "Messaggio"
Forms!A0030_Modifica_materiale.SetFocus
Forms!A0030_Modifica_materiale!Combo_sottoclasse_modifica.SetFocus
End If
End Sub
con l'intento di intercettare la chiusura e riportare il focus sulla maschera A0030_modifica_materiale.
Ma non ci sono riuscito.
Il codice è corretto ma il focus viene spostato sull'altra maschera.
Mi potete dare una mano?