All it takes is a quick look at MS Access support forums to deduce that “unexpected application crash” is one of the most frequent and most frustrating troubles faced by Access users. And it can happen at any time and with any Access version too, while opening/closing Access 2010 / 2013 files or while working with reports.
But why does it happen? Why does MS Access crash without notice even when everything worked absolutely fine the previous day?
Common Reasons for Access database crash
The most common reasons for Access database crash include:
- Corruption in one of the reports inside the database can cause it to crash while launching.
- Erroneous code within a report can cause the process MSACCESS.EXE to terminate suddenly. This could be a major reason why Access keeps crashing while opening reports.
- Conflicts with the anti-virus program running on your machine can also be one of the prime reasons why Microsoft Access keeps crashing.
If you’ve been facing frequent crashes when working with MS Access, the actual cause for them might very well be one of the reasons mentioned above. To resolve the problem use one of the techniques mentioned in the next section.
Solutions to the “Microsoft Access keeps crashing” problem
Starting with the simplest of solutions, here’s all that you can try to fix/repair MS Access database files:
1. Stop anti-virus program
Try to stop your anti-virus program for the duration that you’re working with MS Access, especially reports, and see if it helps. You could also try disconnecting from the Internet for the entire duration that you work on Access database to avoid conflict scenarios. Once you’ve finished your work, remember to turn the anti-virus back on.
2. Decompile and then Recompile the database
Try to decompile the database and then recompile it. You may use the following process for this:
- Create a shortcut that loads the database with the "/decompile" switch.
- Hold down shift when double-clicking on this shortcut to skip auto runs and go straight to the navigation window.
- Once the database is loaded, click the “Compact and Repair” button.
- Hold down shift again as the database reloads.
- Now compile the code and save.
After executing these steps, verify if the problem still exists.
3. Import database objects into a new empty database and recreates the report there
Try to narrow down which report is causing the issue by studying the crash report or error log. Once you have, take a backup of the Access database file and then delete that report. Thereafter, creating a new empty database and import all the objects from the old one into it. Now recreate the report and check to see if the problem still exists.
Note: If the report in question is too complex to be rebuilt from scratch, you can also restore it from a previously saved backup copy.
4. Check your system’s memory usage
If you’ve been experiencing the Access database crash while opening reports on a few machines only, you might be dealing with a low memory issue. Use a memory usage checker application during your regular working hours. If nothing else, this should help you establish that you’re not putting unnecessary load on your machines.
5. Remove Binary Data from Reports
If the crashes are occurring in a single report on different computers and with different users, it might be due to corrupt binary data within the report. Remove binary from such reports as follows:
- Save the faulting report in text format and then open it in Notepad
- Delete the "Checksum=" line and clear out binary data. Look for lines with the words “Parameter = Begin” at the beginning and the word “End” at the end and delete all such lines from the Begin to the End. Also delete parameters like NameMap, PrtMip, PrtDevMode, PrtDevNames, PrtDevModeW, PrtDevNamesW, etc.
- Scroll through the rest of the file and identify VBA module code if any. Delete that too.
- Save the file and then load the report back into Access using the Application.LoadFromText option
- Execute a Decompile followed by a Compact & Repair followed by a Recompile
- Now reopen the report and hopefully, everything should work fine
6. Remove OLE Object fields and then Rebuild the entire Database
If your Access database contains images or other OLE object fields it can often give rise to troubles like Access keeps crashing while opening reports. If you need to store image data, then a better approach is to store the filename, and save the actual images to a standard location. Once you’ve done this, rebuild the entire database from scratch. This will take a lot of time and it is quite an exhausting approach but it just might give your database a fresh start.
7. Repair Access Database
If none of the above-mentioned techniques work or of you don’t have the time or resources to perform a full database rebuild, repairing the Access database using a competent automated application might be a good idea. We recommend using Stellar Repair for Access for the purpose. Backed by advanced scanning and repair algorithms, this software will fix damaged reports and other corruptions or errors within your Access database and help you get rid of problems like “Microsoft Access keeps crashing” for good.
Final Thoughts
We hope that the solutions mentioned above help you stay clear of MS Access troubles in the near future. As a bonus tip, always keep redundant backups of your database files and avoid using reports and forms that are too complex within your database. Find alternative approaches to using OLE objects and Binary data so that your Access database doesn’t get stuck up in them. Also, keep a trusty product like Stellar Repair for Access handy to repair database files in case of severe issues.