L'altra soluzione che ti accennavo prevede di BLOCCARE in EDITAZIONE i controlli...!
Ti scrivo una bozza di codice...
Option Compare Database
Option Explicit
Private Function ControlState(blState As Boolean)
Dim ctl As Access.Control
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case AcControlType.acTextBox, _
AcControlType.acComboBox, _
AcControlType.acListBox, _
AcControlType.acCheckBox, _
AcControlType.acOptionButton, _
AcControlType.acOptionGroup, _
AcControlType.acToggleButton
' Questi sono TUTTI i controlli DATABOUND
If Len(ctl.ControlSource)>0 then ctl.Locked = blState
End Select
Next
End Sub
Quindi se su Load richiami questa Routine così
Private Sub Form_Load()
Call ControlState(Me!CampoBooleano)
End Sub
Private Sub Form_Current()
Call ControlState(Me!CampoBooleano)
End Sub
Quindi metti un Button nel Pie di Pagina Maschera sul quale su CLICK scrivi:
Private Sub NomeButton_Click()
If MsgBox("Vuoi ABILITARE TUTTO...?", vbYesNo, "ALLERT") = vbYes Then
Call ControlState(False)
End If
End Sub
Se vuoi o meno pwd oppure gestisci un LOGIN iniziale...!
Ora in realtà la cosa è un pò più complessa... in quanto ci sarebbero da discriminare CONTROLLI ASSOCIATI da CONTROLLI CALCOLATI... ma io ti ho fatto solo un'esempio...