MarcoIpad ha scritto:
Non so se ho seguito alla lettera il tuo consiglio, ma ho scritto la suindicata l'istruzione.
No, perché nel codice non hai utilizzato il parametro Cancel.
MarcoIpad ha scritto:
Adesso ho uno strano problema.
Se apro la maschera e non inserisco nulla quando esco (sia cliccando sulla x in alto a destra o cliccando sul pulsante di comando """INDIETRO"", mi restituisce sempre e comunque l'errore """Inserire il campo1"""" dopodichè chiude.
Oltre a questa situazione di verifica prima della chiusura hai altro codice in qualche altro evento di qualche controllo che possa interferire? Se sì: toglilo.
Prima sistemiamo la procedura di chiusura.
(proseguo con la stesura del post, torna a rileggere dopo. Stesura definitiva ultimata)
If Me.Testo100 = Null Then campo1 = True
If Me.Codice_attrib = Null Then campo2 = True
If Me.Gruppo = Null Then campo3 = True
If Me.Sottomaschera_TabProtocolloSegnalazioni![Protocollo_segnalazione] = Null Then campo4 = True
Si può riassumere questa parte dicendo che Testo100, Codice_attrib, Gruppo e Sottomaschera_TabProtocolloSegnalazioni![Protocollo_segnalazione] devono essere valorizzati altrimenti non si deve consentire la chiusura della maschera? Se sì (come immagino) imposterei il parametro cancel così
Cancel = (Len(Me.Testo100 & "") = 0 OR _
Len(Me.Codice_attrib & "") = 0 OR _
Len(Me.Gruppo & "") = 0 OR _
(Me.Sottomaschera_TabProtocolloSegnalazioni![Protocollo_segnalazione] & "") = 0)
E' sufficiente che una di queste condizioni sia verificata perché l'evento Unload sia cancellato perché il parametro Cancel è True.
Prova quindi con un semplice
Private Sub Form_Unload(Cancel As Integer)
Cancel = (Len(Me.Testo100 & "")=0 OR _
Len(Me.Codice_attrib & "") = 0 OR _
Len(Me.Gruppo & "") = 0 OR _
Len(Me.Sottomaschera_TabProtocolloSegnalazioni![Protocollo_segnalazione] & "") = 0)
End Sub
Prova con questa, con le varie combinazioni (tutti i dati mancanti, uno solo, più di uno ecc) e quando hai capito il meccanismo passiamo alla segnalazione di cosa manca.