You might want to put the BeforeUpdate event on the subform instead. I think either way, you'll need to invoke Me.Undo, which would roll back the changes. I presume it would be better to roll back a subform change as it's likely one control that's causing the discrepancy. Note that if you undo the main form, every change will be rolled back. If that means 10 controls, then ten it is. That's the only way I know of escaping a record change that was cancelled by the BeforeUpdate event.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.