The VBA language also lets you declare and work with variables and constants and variables and constants are an integral part of any Access
application. Many important features of the VBA language aren't available through macro actions. If you
try to develop an application using only macros, you can't take advantage of many of the rich
features available in the VBA language. In addition, many of the actions available in both
macros and modules can be done much more efficiently with VBA code.
Complex Access applications often require you to loop through a record set, performing some
action on each member of the set. There's no way to do this by using Access macros. However,
with the VBA language and ActiveX Data Objects, you can add, delete, update, and manipulate
data. When manipulating sets of records, you want to ensure that all processing finishes successfully
before your data is permanently updated. Macros don't enable you to protect your data with
transaction processing. Using the BeginTrans, CommitTrans, and Rollback methods, you can
make sure your data is updated only if all parts of a transaction finish successfully. Transaction
processing, if done properly, can substantially improve your application's performance because
no data is written to disk until the process is finished.