If you program for multiple projects how do you keep track of what
you have done in case you have to revisit it later, or turn it
over to a (presumably) junior programmer?
Keep track of *what*?
The application is, in some sense, its own documentation. That is,
the objects indicate their own relationships (e.g., the code behind
a command button on a form tells you where the user can go from that
particular form).
Some people use Visio to produce flow charts of workflow and
procedures, but mostly, I think that happens in the planning/design
stage, not as part of the documentation for a finished application.
I end up being brought in to fix/revise/update old apps all the
time. I don't have any documentation in these cases, but I don't
have much difficulty figuring out the workflow. The hard part is
figuring out which objects are in use and which aren't, and that can
be helped by:
1. temporarily turning on Name Autocorrect so it builds its
dependency table, which you can then use to see which objects have
which dependencies.
2. using a good search/replace utility.
I am currently in the early stages with one project of "making the
database my own" by converting it from the way the previous
developer designed it to the way I'd design it. This entails:
1. renaming tables, combining duplicate data tables, implementing
proper RI, renaming fields within the tables, removing errors (like
lookup fields in tables).
2. converting all macros to code, weaning menuing systems off of
macros.
3. revamping forms to not use saved queries as recordsources,
revising appearance in all forms, integrating my own utilities for
controlling appearance, etc.
4. revising reports to remove dependencies on saved queries,
revising appearance, etc.
And so forth.
This process leaves me understanding the application a lot better so
I can move forward with whatever needs to be done to make it better.
I hardly ever encounter an app with any significant amount of VBA
code, so I mostly don't have to worry about that. Code navigation is
a lot easier, as the VBE and the object browser make it pretty easy
to figure out how things interrelate.