I have a macro that I want to run on the BeforeUpdate event for a close date. There is another macro that runs on the AfterUpdate event.

The BeforeUpdate macro validates whether the person has permission to close out the order (by adding a date to the closed on field).

Currently if the validation fails, it runs CancelEvent and then calls Undo. This stops the event and clears the text box, but then it treats the Undo as an update and runs the BeforeUpdate again.

Anyone have any ideas on how to just restore the previoius data in a clean manner?