Vamos a suponer que si el campo REGISTRO no tiene aún valor es porque se va a dar de alta un registro, mientras que si ya tiene valor es que hablamos de un registro cuyos datos ya se han cumplimentado. ¿OK?
Imaginemos que los campos [Campo1] y [Campo5] son los que quieres bloquear.
Lo que tienes que hacer es lo siguiente:
1.- Pon tu formulario en vista diseño
2.- Sacas sus propiedades y te vas a la pestaña Eventos -> Al activar registro, y ahí le generas el siguiente código:
...
Private Sub...
'Miramos si el campo [REGISTRO] tiene valor o no
If isnull(me.REGISTRO.Value) then
'Si no tiene valor nos aseguramos que los campos "conflictivos"
'están desbloqueados
With me
.[Campo1].Locked = False
.[Campo5].Locked = False
End with
Else
'Si tiene valor bloqueamos los campos "conflictivos"
With me
.[Campo1].Locked = True
.[Campo5].Locked = True
End with
End If
End Sub
...
Ya me dirás qué tal.