We have received reports of Total Access Analyzer crashing when documenting Microsoft Access databases with this error:
- Error Description: The expression you entered refers to an object that is closed or doesn't exist.
- Error Number: 2467
- Procedure: CTAA_Inventory.GetInventoryCommon
- Error Line: 1000
Corrupt module or modules in your database.
To see if this is a problem, add this Access VBA procedure to your database and run it:
Dim intObjects As Integer
Dim x As Integer
intObjects = CurrentProject.AllModules.Count
For x = 1 To intObjects
Debug.Print CurrentProject.AllModules(x - 1).Name
This procedure goes through the modules collection and lists them in the Immediate Window. If it encounters a corrupt module, it will crash so you can see which module it is.
Before doing anything, make sure you have a backup of your database.
Decompile your database to see if that solves the problem. Many odd VBA and module related issues are cleaned up when the database is decompiled. Read our paper for details: Decompile Your Microsoft Access Database to Improve Performance, Fix Corruption, and Avoid Strange VBA Errors
Run the TestModules procedure again to see if problems remain. Hopefully there aren't any more and you can run Total Access Analyzer successfully.
Delete Corrupt Modules
If bad modules remain, a more radical step is to delete the offending module, run TestModules again, and repeat for all offending modules until it runs without crashing. This can get you through the process of being able to run Total Access Analyzer, but it hardly solves the problem since you probably need those modules. You may be able to import the text of those modules back into your database, but clearly something got corrupt in the database.
If it's more than a couple modules, your database is probably corrupted and you should replace it with a:
- Backup copy, or
- Create a new database and import all your database objects into it. Make sure to reset the database properties and add any library references since those aren't imported automatically.
Hopefully, you're creating backups of your database on a regular basis to minimize the impact of disasters.