A family of Microsoft relational database management systems designed for ease of use.
I have further information which may help to understand the problem.
My application has a client form and a bookings form. The client form has a subform with a list of that client's booking. The user can "drill down" from the client form to see the details of a booking on the booking form. When they do that, the application closes the client form and then opens the bookings form.
The following error message is displayed as soon as the bookings form is displayed:
The object doesn't contain the Automation object 'Blacklisted.'
The client form also has a function to create a new booking for the client. In this case, the application closes the client form and opens the booking form in data entry mode to create a new record.
When they do that, Access emits a beep (as if it is displaying an error message) but no message dialog is displayed. It then crashes.
Now what is of interest is that I have no objects/properties in the database called "Blacklisted". None. There are no fields, forms, controls or anything else called Blacklisted. However I do have a field on the client form called Blacklist and a client is considered to be "blacklisted" if that field is set.
So I used Brent Spaulding's excellent SearchForText utility ( https://www.utteraccess.com/topics/1992076 ) to search my database for "Blacklisted" and found a conditional format expression [Blacklisted] on the client name field of the client form. It is supposed to show blacklisted clients in red text.
NOTE: This is the form which is closing. The object name does not exist anywhere else in the database.
What this means is that once upon a time the Blacklist field was called Blacklisted and when it was renamed, the conditional format expression was not updated. As a result the conditional formatting is causing an error because it has a bad expression. However errors in conditional formatting expressions do not always surface, they just fail to cause the conditional formatting to be applied.
I removed the conditional formatting expression, and hence the source of the error.
Now when I drill down to the booking form, the following error is displayed:
No Current Record
(sound familiar?)
When I create a new booking record, the following error is displayed:
The Microsoft Access database engine does not recognize 'ContextListFill' as a valid field name or expression.
The system no longer crashes.
Now "ContextListFill" is a combo box filler function used as the ControlSource of a combo on both the closing client form and the opening booking form. Instead of crashing, Access appears to be displaying some other miscellaneous message about the closing form.
What is significant here is that this shows:
- The error message is being displayed by Access as it closes a form. it is clearly trying to requery/refresh the dying form as it closes.
- If Access cannot handle an error which occurs as the form closes, it crashes.
The crash appears to be Access's equivalent of us getting a Continue/Debug/End dialog in VBA if we don't handle a runtime error properly.
Although this is not a solution, it is a workaround which has allowed me to downgrade the severity of the error from a system crash to an irritating error message. I hope this information helps others to workaround the problem while Microsoft work on a fix.