Setting up the second control so that the user can't leave it without making an entry could cause other problems. For instance, if the user is simply tabbing through these two fields they'll have to put an entry into the second one even if there is no entry in the first one. Or, they may put an entry in the first one, then change their mind, but still have to go ahead with an entry in the second one. Etc, etc...
Doing the error checking in the BeforeUpdate event avoids all these problems, and insures that a record cannot be created or modified without the business rule being enforced.
If the record is being saved in such a way that the form's BeforeUpdate event does not fire (unusual but not unheard of), then the same code should be executed before that action. An easy way to do this is to set up a Boolean function to test for compliance with the rule - if everything is OK the function returns True; if not, it displays the message box, sets the focus, and returns False. If you're saving a record in code, you can then do it conditioned on this function (If MyFunction Then ...). In the form's BeforeUpdate event, you can just specifiy If Not MyFunction Then Cancel = True.