I cannot recall ever using As over =
Set db = CurrentDb ?
Why so much code? Are users editing tables directly? If there is a form involved and the fields are bound to it, you validate the form data. Rather than prompt "do you want to keep the defaults" I'd just remove them and make those fields required, or don't bother at all. Defaults are for when it doesn't really matter or the field entry will be repetitive IMO.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.