In the message box, you are giving the users a choice of Yes or No. Why then, are you allowing a Cancel button as well?
Also, you are firing the event on the Before_Update which will only fire if you have made changes to the record. Why do you need to ask the client if they want to save changes...