For a long time, macros were considered the poor cousins of VBA statements. Although in many ways VBA and macros were equivalent in their capabilities, macros have always been considered inferior to VBA for handling an application's logic.
The problems with traditional Access macros were considerable:
- Macros existed as separate database objects, so keeping track of the macro's effect on a particular form was often difficult. Because there was no direct connection between a form (or a report, for that matter) and a macro, it was easy to break the macro by deleting or renaming it. VBA code encapsulated within the form's code module never had this problem.
- There was no way to trap or handle errors in macros. In versions of Access prior to 2007, macros would simply stop running and display an error dialog box if something unexpected...