When registering events for controls on a subform, make sure you remember that you re-register those events after reloading the subform control via the SourceObject property.
In my case, I was always loading a subform initially and the Open routine on the subform would load a setup routine to register a public class with all the events that I needed to listen to.
When the user initially has a blank order form, when they choose a job for that order, it then loads and initializes the line items with estimated bid amounts for that job.
If they happen to change the job, it does this again, but if the line items were already populated, it was reloading the form by setting the SourceObject to itself:
Form.subformControl.SourceObject = Form.subformControl.SourceObject
This left the existing lines there, but reset the public variable on the form that was holding the class with all the event listeners. They were set to load themselves again if the object was accessed and the listener was empty, but unfortunately, this meant that the first object they interacted with on the form would not activate it’s listener because it wasn’t activated yet.
This subtle bug was causing code not to execute that needed to execute to keep the form in a consistent state.
I fixed this by making sure to run the Setup routine on the subform each time I reset the SourceObject. It’s a very fast routine as Access is very quick at setting up event listeners.