First, thanks Wayne Morgan, Cost Budde, and Saintor for all the help
you've been in getting me through the field of hidden mines in Access.
Most of the program now works, so hopefully I am nearing the end of my
(immediate) questions.
Since this is a bit of a high-level question, first a few words about
what I am (trying to) do. This is an AI medical diagnostic program,
that takes free-form natural language patient statements regarding all
of their health problems, extracts specific usable details, matches
them to known possible conditions, identifies questions to separate
the candidate conditions, extracts search words for medical databases,
etc.
Early appearances suggest that this program may be able to provide
better primary diagnostic health care than is usually available from
overworked live doctors! The program may not be as smart, but it is
MUCH more patient, has a better memory, and is thorough to a fault.
This is currently written in Access 97 so that porting to other
platforms will be as easy as possible. When (if?) this stabilizes, I
plan to convert it to VB playing against an Access MDB. This program
may then find its way to a web site if it doesn't turn out to be too
slow.
The guiding methodology throughout has been to use complex VBA
functions in queries to not only compute an output field (that is
often simply ignored, or just used for debugging), but to also
accumulate internal statistics to be used for the next phase of
analysis. For example, it accumulates the symptoms associated with
various high-ranking candidate conditions that a patient did NOT
mention, so the patient could be asked about these.
Yes, I've already observed some of the interesting "flakes" in this
approach, like SQL liking to look at the same record more than once
during a query. This hasn't caused (significant) problems, because
there is plenty of logic to reject duplicates throughout the program.
My fundamental logic seems to be holding together from end to end, but
I'm now having some interesting challenges with the platform.
My immediate problem is that I haven't yet found a reliable way to be
sure that a query has completed. I can put in a few DoEvents after
firing off a query and at least the simple stuff works. However,
debugging has been rather difficult, because setting a breakpoint in
one of the functions called by SQL simply stops the query while the
program continues on to "jump to confusions" without the full results
of the query.
I suppose that I could simulate the queries in DAO code, but that
seems to be a stone age solution to this problem. I suspect that one
of you gurus has a MUCH more elegant approach.
Do you have any thoughts, ideas, suggestions, commizerations,
castigations, curses, etc?
Thanks again.
Steve Richfield