Su evento Corrente della Maschera principale, se non sei in condizione NewRecord, assegni alla proprietà AllowEdits ed AllowAdditions il valore booleano corrispondente alla convalida del criterio...
Questa la forma esplicita che aiuta a capire:
Private Sub Form_Current()
It Me.NewRecord the
Me.NomeSubForm.Form.Allowedits=True
ElseIf Me!Nomecontrollo="XXX"
Me.NomeSubForm.Form.AllowEdits=False
Else
Me.NomeSubForm.Form.Allowedits=True
End if
End sub
Oppure in forma più contratta:
Private Sub Form_Current()
Me.NomeSubForm.Form.Allowedits=Me.NewRecord Or Not Me!Nomecontrollo="XXX"
End sub
Devi applicarlo anche alla proprietà AllowAdditions ed AllowDeletions.
Non si usa la proprietà Enabled dell'oggetto container al fine di poter scorrere con la scrollbar... puoi in alternativa provare se la proprietà Locked funziona... sempre sul contsiner e non sull'oggetto form.