Database macro programming has changed enormously over the last 15 years,
having gone from Access Basic macros to VBA. Another major change occurred
with Office 95, when macros went to VBA modules in a separate environment
accessed via the Visual Basic Editor. It used to be fairly basic: code was entered into a special
design window. Although the language was rather powerful in its own right, it was not a
structured language and could certainly not be described as object-oriented. The number of
commands was limited, and a fair amount of ingenuity was required to do certain tasks. The
main advantage was that it was fairly easy to learn and understand; many programmers cut
their teeth by initially writing database macros.
If anyone other than the original author examined the code, it could take days to find out
exactly how it worked and what it was doing. Commercial companies frequently found that
when the author of a complicated macro left the company, that macro had to be rewritten
from scratch because of the time involved in assessing what it was doing.
Microsoft has introduced a new programming language called Visual Basic for Applications
(VBA). VBA is a more intuitive and robust programming language, using an object-oriented
design. It has many similarities with its older and larger cousin, Visual Basic (VB). Once you
learn VBA, you will have a fair understanding of how Visual Basic itself operates.
VBA is extremely different from the old macro language, and if the older language is what
you are used to, it will mean totally rethinking how you write and structure your code. The
concepts of object-oriented programming (OOP) are as different as chalk and cheese to the
old macro language, but there is a huge advantage in terms of what you can achieve on a
spreadsheet. With object-oriented programming, you are dealing with the concept of objects.
To use an example, the database you load is an object. The tables and queries where you
access your data are other objects, and so are the printer and the screen. They have properties,
events, and methods (discussed later in the book). You will start to see object-oriented
programming in more detail when you reach Chapter 14.
VBA does allow a more structured and object-oriented approach to writing your macros.
If this is your first foray into the world of Access macro programming, you may well find the
concepts easier to grasp, since you have no knowledge of the technologies used in the past
within Excel. The Access Basic macros were a completely different language in terms of how
and where you entered it. The concept of VBA is unique and cannot be compared to the old
Access Basic macros. Unfortunately, knowledge of the old system of writing macros can add
to confusion with the new method of VBA and extend the learning curve.