Buonasera
dopo un'estenuante nuero di prove ho individuato la causa del problema nell'istruzione, contenuta in ciascun case Me.[NomeCampo].Value = Null. Infatti in presenza di tale istruzione, dopo l'esecuzione del case di volta in volta selezionato, sulla base del valore assunto dalla casella idTipoRazionalizzazione, la procedura, verificata in sede di debug, torna all'istruzione Me.AllowEdits = False che sembrerebbe essere eseguita, ma senza efficacia nel senso che la form risulta essere modificabile.
Se elimino dai varii case l'istruzione Me.[NomeCampo].Value = Null, in sede di debug sembrerebbe non cambiare niente, la procedura torna all'istruzione Me.AllowEdits = False che, questa volta, viene eseguita con efficacia e ma form risulta non modificabile.
Qualcuno sa spiegarmi il motivo e suggerirmi una soluzione ?
Grazie e riporto di seguito il codice vba della form.
Option Compare Database
Private Sub cboAcronimo_AfterUpdate()
Me.Requery
ControlloCase
Me.AllowEdits = False
End Sub
Private Sub ControlloCase()
cmdSalvaRecord.Enabled = False
Me.cmdSalvaRecord.Enabled = False
If IsNull(Me.idTipoRazionalizzazione) Then
Me.Corpo.Visible = True
Me.cmdChiudiMaschera.SetFocus ' non so se si chiama così
Me.cmdModificaRecord.Enabled = False
Me.cmdEliminaRecord.Enabled = False ' non so se si chiama così
Else
Me.Corpo.Visible = True
Me.cmdModificaRecord.Enabled = True
Me.cmdModificaRecord.SetFocus
Me.cmdEliminaRecord.Enabled = True ' non so se si chiama così
Select Case Me.idTipoRazionalizzazione
Case 2 'interventi di razionalizzazione
Me.InterventiRazionalizzazione.Visible = True
Me.InterventiRazionalizzazione_Etichetta.Visible = True
Me.PresuppostiAttuazione.Visible = False
Me.PresuppostiAttuazione.Value = Null
Me.PresuppostiAttuazione_Etichetta.Visible = False
Me.NoteRazionalizzazione.Visible = True
Me.Note_Etichetta.Visible = True
Case 5 'alienazione
Me.InterventiRazionalizzazione.Visible = False
Me.InterventiRazionalizzazione_Etichetta.Visible = False
Me.InterventiRazionalizzazione.Value = Null
Me.PresuppostiAttuazione.Visible = False
Me.PresuppostiAttuazione_Etichetta.Visible = False
Me.PresuppostiAttuazione.Value = Null
Me.NoteRazionalizzazione.Visible = True
Me.Note_Etichetta.Visible = True
Case 6 'cessione gratuita
Me.InterventiRazionalizzazione.Visible = False
Me.InterventiRazionalizzazione_Etichetta.Visible = False
Me.InterventiRazionalizzazione.Value = Null
Me.PresuppostiAttuazione.Visible = True
Me.PresuppostiAttuazione_Etichetta.Visible = True
Me.NoteRazionalizzazione.Visible = True
Me.Note_Etichetta.Visible = True
Case 7, 8, 9, 11, 12 'liquidazione, scioglimento, fusioni e recesso
Me.InterventiRazionalizzazione.Visible = False
Me.InterventiRazionalizzazione_Etichetta.Visible = False
Me.InterventiRazionalizzazione.Value = Null
Me.PresuppostiAttuazione.Visible = False
Me.PresuppostiAttuazione_Etichetta.Visible = False
Me.PresuppostiAttuazione.Value = Null
Me.NoteRazionalizzazione.Visible = True
Me.Note_Etichetta.Visible = True
Case 12 'Recesso
Me.InterventiRazionalizzazione.Visible = False
Me.InterventiRazionalizzazione_Etichetta.Visible = False
Me.InterventiRazionalizzazione.Value = Null
Me.PresuppostiAttuazione.Visible = False
Me.PresuppostiAttuazione_Etichetta.Visible = False
Me.PresuppostiAttuazione.Value = Null
Me.NoteRazionalizzazione.Visible = True
Me.Note_Etichetta.Visible = True
End Select
End If
End Sub
Private Sub cmdModificaRecord_Click()
Me.AllowEdits = True
End Sub