[AccessD] Database close bug (apparently) resolved

John W. Colby jwcolby at colbyconsulting.com
Mon Aug 15 20:02:49 CDT 2005


Well...

It appears that my bug has been resolved.

The form in question has a combo, the list for which is a result of a state
machine.  IOW, if you are in state A, then you can go to state B, D, F or G
but not C, E etc.

Thus the list for the combo has to be calculated as the form opens based on
the current state, a SQL statement generated and placed in the combo
rowsource property.  In fact, for troubleshooting purposes, I had a saved
querydef which I modified with the results of this calculated SQL Statement,
then placed the name of the saved query in the combo's RowSource property
after the calculation, and modification of the querydef.

Once I knew that it was this class that was causing the issue, I was able to
"divide and conquer" (comment out statements until it was found) and
discovered that it was the process of modifying the saved querydef that was
causing the unexpected close.  The combo RowSource is set to the name of the
saved query when the form opens, then the RowSource is set to "" (cleared),
the querydef opened and the SQL property modified with the calculated SQL
statement and closed, then the name of the query placed back in the combo
which causes the combo to "requery" and pull the data per the SQL statement
and display that dataset.

For whatever reason, that modify/save/store in combo process was causing the
close issue.  By simply deleting the named query from the combo's RowSource,
then placing the SQL statement itself directly in the combo, the database no
longer closes unexpectedly.  Now I have to do a "Find" to make sure that the
stored query is not used any where else after the combo is loaded, and if
not, I can just leave things as they are with a note in the commented out
code to indicate that it caused my "database close" issue.

What a PITA.  And why doesn't Access close immediately (or better yet, throw
an error if it doesn't like this?) when I am screwing around with the
querydef instead of after OnCurrent finishes?  And what is it that makes it
OS sensitive?  All things I will no doubt never see the answer to.

But... I have fixed my problem.

John W. Colby
www.ColbyConsulting.com 

Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/





More information about the AccessD mailing list