There is the database documenter built into ms-access. It really only does a
printout of very piece of code, table, forms etc.
You can find this via
tools->Analyze->Documenter
Play around with the above..as it does produce a lot of documentation.
of which object uses which object
The problem with the above is that ms-access has a good runtime expression
service. What this means is that OFTEN code in ms-access will be ambiguities
until runtime....
eg:
strForm = "frmCustomers"
strField = "LastName"
msgbox "The last name of the persons name in form Customers is = " &
forms(strForm)(strField).
The above code references the form "frmCustomers", and also references the
control on the form called "LastName". How is a documentation system like
Rational Rose going to show you that the above code is dependent on the that
form..and will fail if you delete the form? So, due to the resolving of A
LOT OF OBJECTS at runtime, there is no tool out there that really will
document dependences since you would actually have to run and interpret the
code.
So, one of the "great" feature of ms-access is that you have a expression
service. You can build a where clause two ways for a form.
1)
strWhere = "LastName = forms!frmCustomers!LastName"
or, the why I use:
strWhere = "LastNAme = '" & forms!FormCustomers!LastName & "'"
Note in then the 2nd case we actually resolve the string to a LEGAL sql
where clause that can be used to open a form.
However, with the ms-access expression service, we actually can use the
first syntax..and ms-access will figure out the string for us..and even add
the quotes around it (or # if a date...or nothing if a number).
So, due to the wide use of the expression service..you can't tell what code
references what to any significant degree that would allow you to delete
code.
However, access 2003 does try it's best to show dependences on a object...at
least with built in objects like queries, reports and forms (if you right
click on any object in the main database window...you can view
dependencies - this is a new feature for a2003..but still have the above
limitations in code as mentioned above).
Also, if you have not yet..I STRONGLY suggest you grab the mztools here:
http://www.mztools.com/
These tools are nice for your own code, but when jumping into others
code...it is INVALUABLE. Of course, when you are in the code editor, we all
know that placing your cursor on a sub (or function name), and hitting
shift-f2 will "jump" you to that routine. If you hit ctrl-shift-f2...you
un-cork back the way you came. This effectively allows you to "ski" through
your code...jumping from code calls to code calls.
.. However, the mztools will actually TELL YOU what OTHER routines
use the CURRENT routine you are in. So, you can instantly view all dependant
code routines that call the current routine you are in. This is simply a
must have when diving into uncharted territories called "other peoples
code!!"
good luck...and grab the mztools...as they are life saver when looking at
other peoples code....