In alternativa al VBA, io avrei pensato ad associare una macro che Blocca il controllo nel caso esso non fosse Null.
1. Apri una macro in visualizzazione struttura
2. Apri le colonne Nome macro e Condizioni
3. Nel primo rigo Nome macro ci scrivi Campo1
4. Accanto, a Condizioni, la seguente sintassi:
[Maschere]![NomeMaschera]![Campo1] Is Not Null
5. Accanto, in Azioni:
ImpostaValore
Elemento: [Maschere]![NomeMaschera]![Campo1].Locked
Espressione: Vero
6. Ripeti i punti 3./5. nei righi successivi analogamente per Campo2, Campo3, ecc...
7. Salva la macro con nome Blocca
8. Vai in visualizzazione struttura maschera e associa per ogni Campo la corrispettiva macro sull'evento "Su attivato". Cioè per il Campo1 associa la macro Blocca.Campo1, per il Campo2 la macro Blocca.Campo2, per il Campo3 la macro Blocca.Campo3.
Almeno nella mia proposta, rimane il problema che, se per caso sbagli nel digitare, non puoi correggere. Allora occorre aggiungere un pulsante a cui associare un'altra macro Sblocca con le seguenti azioni:
ImpostaValore
Elemento: [Maschere]![NomeMaschera]![Campo1].Locked
Espressione: Falso
ImpostaValore
Elemento: [Maschere]![NomeMaschera]![Campo1]
Espressione: Null
Questa soluzione appare molto più elaborata. Se quella di Alex ti soddisfa, sceglila.