Thank you for the response to my previous message and for reading the "Access 2010 Programmer's Reference" book, we really appreciate your readership. You have definitely found the right forum for this question!
So, I reviewed the code you provided here, as well as pages 76-77 in the book. It looks like the code you've provided here runs your macro, called "BookMacros", on the "AfterUpdate" event for the form. And you also said: "I'm wanting to run (the macro) whenever a field changes on my form. I've tried the above code from the Forms events properties as well as the fields After Update and On Change Field properties." So, I will say that the problem sounds strange...
Really, in this situation, you should be able to place the "RunMacro" code behind the "AfterUpdate" event of the SPECIFIC CONTROL on the form for the data field. So, for example, if you have a "First Name" TextBox control on your form, then you should create an "AfterUpdate" event for the "First Name" TextBox control to run your macro. Does this make sense and have you tried this specifically? I realize that your message above says "as well as the fields After Update and On Change Field properties," but this would be the correct way to handle the situation as far as I can tell.
One other thing that I might mention is that for this code to run correctly, you MUST enable code in the database. I'm assuming that you know this already, but just in case, this can be accomplished by clicking the "Enable" button on the yellow "Security Warning" bar that is found just below the Ribbon when a database IS NOT already trusted.
So, if you're still having a problem here, I have created an example that shows exactly how to apply a macro using the method you are requesting here, which you can download from:
Also, another thing I would mention in regard to this question. I noticed that you are using VBA code on the "After Update" event to simply call "DoCmd.RunMacro" and it looks like that is it. I'm assuming that you ONLY want to run a macro on the "After Update" event (and not run other VBA code along with the macro). So, instead of placing a VBA Code event behind the form to call "RunMacro", you could just choose the "Macro Builder" option to simply create a new macro to run on the event. And, if you already have the macro created (as an Access "Macro" Object that you can see in the Navigation Pane), you can just select that Macro by its name for the "After Update" field in the Property Sheet when the TextBox control is selected, and it will run automatically - you don't really need the VBA code here. So that would be a simpler option for what you want to do here, because it eliminates the VBA code to call the "RunMacro" function. But really, either option should work the same way - that is one of the beauties of Access - you have lots of different options for accomplishing the same task!
So, anyway, I hope this is helpful. If you are still having problems, or have any more questions in this area, please feel free to reply here and I will do my best to help out!