I have an Access 97 application that consists of dozens of
tables, 150 forms, 130 reports, 210 queries, and a couple
dozen code modules. It is in continual development, with
multiple tasks in work at any given time.
I need to be able to be able to document for my clients
what I've done on a weekly basis, and I'm too busy (or too
scatter-brained) to keep a manual log of each
form/table/report/module/query that I've modified each day.
I've created a simple form named frmDevTracking. This form
uses a Timer event which enumerates the
Forms, Modules, and Reports collections, returning the
object type, name, mode (i.e., whether a module is a
standard module or a class module), and a timestamp for
each open member of the collection. These are written to a
table named tblDevTracking. I set the form's timer
interval to some suitable value such as 360000 (six
minutes, or one-tenth of an hour). This form basically
sits quietly and collects information on all forms,
modules, and reports that are open when the timer fires,
and stores the data for processing later.
A second form (frmDevActivityReport) reads the collected
information, calculates a rough value of how long each
object is open, saves the summarized information to
another table (tblDevActivitySummary), and prints a report
showing each object name, mode, time it was opened, and
how long it was opened, by date for a specified date
range. The results are obviously dependent on the timer
interval specified, and this method won't catch an object
that is opened and closed between consecutive firings of
the timer, but it will give me a rough idea of what I
spend my time on during the course of a day.
If I could somehow determine the cursor position in a
given module window at timer fire, I could record the name
of the procedure in which I was working at the time,
rather than just the name of the module. Obviously,
knowing which procedure had my attention at a the time
would be more useful in the desired end result.
I just have a hard time accepting the idea that there is
no way to grab the cursor position. I mean, the
interpreter has to track that stuff, right?
I guess I'm wasting too much time on it - but I'm so
danged close!
Kevin