Benjamin,
NULL and empty are two distinct different values in VFP. When the user blanks out a field of its data, they create an empty field. The keystroke CTRL-0 (zero number) enters a value of NULL into the field.
You can check the value of the control in the valid and if empty replace it with NULL;
IF EMPTY(This.Value)
This.Value = .NULL.
ENDIF