Repairing Access
HomeRepairing AccessHow I repaired 28 corrupt Microsoft Access databases

How I repaired 28 corrupt Microsoft Access databases

Base de datos dañada de Microsoft Access

David Cimadevilla

Jul 19, 2019

The steps I took to repair 28 corrupt Microsoft Access files. How I identified each case and chose the appropriate repair technique by analyzing the file and looking at the error message. Research project.

As part of my job I have to repair Microsoft Access files for my clients. Over the last 10 years I have seen many different errors. In some cases, the MS Access file cannot be opened, in others the error messages prevent the normal use of the database.

Developping the AccessFIX data recovery tool has given me the opportunity to learn in depth about the internal workings of Microsoft Access files. When I need to, it is not difficult for me to analyze a damaged accdb or mdb file, find the cause of the error and to repair it.

Each error has its origin in a different cause, in a different type of damage. I have asked myself many times during my work what clues could be giving me an error message about the concrete failure behind it and if that knowledge could be useful to repair damaged databases. That's how I came up with the idea for this project.

The results of this series of articles is a source of information for those who need to repair a database with errors.

The project consists of analyzing a series of corrupted Access accdb files to relate each error message to a particular type of damage, and to find the best method to fix it. Whenever possible, the file should be repaired without using external tools.

I finally found the time to do this project and have been able to complete it. In this series of articles, I present the results I obtained.

Compiling Access Errors

When an MS Access database becomes corrupted, how many different error messages can be seen?

My first goal was to collect the maximum number of different error messages. I thought that the only way to study a large number of errors was to analyze a large number of accdb files and, therefore, I needed as many damaged files as possible.

Considering the privacy implications of working with real files, I finally decided to artificially generate a series of damaged files for the study.

Accdb files impossible to open, inaccessible data, missing tables, unexpected error messages, are the symptoms of a corrupt Microsoft Access database.

Generating errors

Precisely damaging selected internal structures in accdb files allowed me to get different types of error.

I started from a fully functional database that contained objects of all types: tables, queries, forms, reports, macros, and Visual Basic modules:

Microsoft Access database

Original database before being damaged.

I then duplicated the original database 28 times and in each copy I damaged a specific part of the file. In the first files I cracked large areas of the file, then I precisely damaged small zones of between 2 and 8 bytes. For example, corrupting a block of records in a table, an entry in the database's index of objects, or some data associated with a Visual Basic module.

28 corrupted Microsoft Access files

28 copies of the same database are the raw material for this project. Carefully selected internal structures have been damaged in each file.

After "surgically" damaging each of the files, these are the resulting 28 accdb files:

zero-overwrite-beginning-400K

Beginning data erased.

zero-overwrite-ending-400K

Ending data erased.

zero-overwrite-whole

All data erased.

empty.accdb

Empty file.

corrupt-header.accdb

Corrupt header.

corrupt-index-def.accdb

Corrupt index of objects.

corrupt-index

Completely destroyed index of objects.

corrupt-index-page

Partially damaged index.

corrupt-index-table

Corrupt table entry in index.

corrupt-index-form

Corrupt form entry in index.

corrupt-index-module

Damaged module entry in index.

corrupt-objects-def.accdb

Corrupt object storage.

corrupt-objects-page.accdb

Partially damaged object storage.

corrupt-objects-form-data.accdb

Corrupt form data.

corrupt-objects-form-entry.accdb

Corrupt form header.

corrupt-objects-vba-data.accdb

Corrupt module data.

corrupt-objects-vba-entry.accdb

Corrupt module header.

corrupt-system-complex-def.accdb

Corrupt complex fields container.

corrupt-system-complex-page.accdb

Partially damaged complex fields.

corrupt-system-permissions-def.accdb

Corrupt permissions container.

corrupt-system-permissions-page.accdb

Partially damaged permissions.

corrupt-system-queries-def.accdb

Corrupt query container.

corrupt-system-queries-page.accdb

Partially damaged queries.

corrupt-system-relationships-def.accdb

Corrupt inter-table relationship container.

corrupt-system-relationships-page.accdb

Partially damaged inter-table relationships.

corrupt-customers-def.accdb

Corrupt table definition.

corrupt-customers-page.accdb

Corrupt table records.

corrupt-customers-memo.accdb

Corrupt memo field.

The results

A monograph for each error.

For each of the damaged files, I methodically checked how Access failed and what errors it returned. I took notes and screenshots of everything.

Finally, I classified the files according to the error messages they generated. I thought it would be the most useful way to present the results as it would make it possible to check the information available about each error as a reference guide.

To find information on how to repair a corrupt file look for the monograph on the particular error you are interested in.

Over the next few months I will be presenting an article for each error with information on how to repair each of the files depending on the type of failure.

What I will do to prepare each article is, for each of the files with the same error, first, to write down when and how the message is displayed and then try to repair the file, if possible without, using other external tools.

In each article I will publish the results including the symptoms of the problem and the repair technique used.

The error message, when it occurs, and how it occurs, can be used to identify similar cases of corruption. This way, the techniques applied to repair a file could also be useful in similar cases.

For each file sharing a common error, I will include the following information:

  1. How the error is manifested.

  2. How similar cases can be identified.

  3. Which objects are affected.

  4. How to repair the file or recover the data.

List of Errors

Click on an error to view it.

Error 1

"Unrecognized database format."
Microsoft Access error: Unrecognized database format.

I analyze the 9 files (of 28) that generate this error. I open each of them and see how Access responds. Then I look for the best way to recover the data in each case..

Error 2

"The Microsoft Access database engine stopped the process because you and another user are attempting to change the same data at the same time"
Microsoft Access error: The Microsoft Access database engine stopped the process because you and another user are attempting to change the same data at the same time

Quickly available... This error, in spite of what the message suggests, could be announcing internal damage in the accdb file.

Next Errors

New errors soon.

About the author

My name is David Cimadevilla. Since 2006 I have directed the development of the AccessFIX utility for the recovery of Microsoft Access files.

Hundreds of damaged files with all kinds of failures and all Access versions from 97 to 2019 have passed through my hard disk. Hundreds of hours in front of the screen inspecting them has enabled me to decode every detail of the Access binary format.