With bound controls i never seemed to be able to update values except in really simple cases where a control was just linked to a table. Any complication like multi-table joins and it just wouldn't let me update
The key to controlling form updates is the FORM's BeforeUpdate event. No update gets past it so that is where all your null checks and multi-column validation needs to go. Regardless of the action that caused Access to decide to save the current record, the form's BeforeUpdate event is fired and is the LAST event prior to saving the record so cancelling the event, cancels the save --- Cancel = True --- works in any event with a Cancel argument. People exert an inordinate amount of energy flailing around with form and control events trying to intercept all saves when all they needed to do was to camp out in the Form's BeforeUpdate event and let the save come to them.
Two areas of study will help you enormously when working with Access. Events and Functions. Understanding when events fire will help you to understand in which event you need to place your code to achieve the desired result. Studying Functions will keep you from writing unnecessary code to replicate some functionality that is already built in.
Bound forms have a RecordSource. The prefered choice is a query but tables are allowed. Bound controls have a ControlSource that points to a field in the form's RecordSource. If the ControlSource starts with an =, it is a calulated value and is NOT bound.