"mdb" file locked out......

  • Thread starter Thread starter Fred
  • Start date Start date
F

Fred

I have a multil-user database, developed in Access 2000,
that has been running for a few weeks already. All of a
sudden, yesterday, users get a Microsoft Access error
window with the following message:
"This database is in an unexpected state; Microsoft Access
can't open it."
The body of the message is:
"This database has been converted from a prior version of
Microsoft Access by using the DAO CompactDatabase method
instead of the Convert Database command on the Tools menu
(Database Utilities submenu). This has left the database
in a partially converted state.

If you have a copy of the database in its original format,
use the Convert Database command on the Tools menu
(Database Utilities submenu) to convert it. If the
original database is no longer available, create a new
database and import your tables and queries to preserve
your date. Your other database objects can't be
recovered."

From the message, it sounds like someone try to convert to
an older version. The problem with this is that most of
the users are using the 'run time' version. It is highly
improbable that the above senario was possible.

What to do? What could have caused this?

Thanks,
Fred
 
The database is partially corrupt.

1. Make sure no users are in the database.

2. If there is an ldb file in the folder where the data file resides, delete
it. (The ldb file contains information on who is locking what, and can be
left over after a crash.)

3. Make a backup of the mdb.

4. Using a full version of Access, open the file, and choose Tools |
Database Utilities | Compact/Repair.

If that fails to resurrect it, post back.
 
I tried all that. It seems that the database is
completely corrupted. I estimate that the size of the
database, when I last "Compacted and Repaired" (utility)
should be approximately 6 MB. The current size is only 2
MB (after corruption).

These are the things I've done:

1. Looked for an "ldb" file...none.
2. Made a backup of the "mdb" file...done.
3. Tried to open the "mdb" file with a full version of MS
Access...still got the error message...no success.
4. The only alternative that I could think of is to
restore the lastest backup.

My question now is, "What could have caused this?"
How can I avoid this next time?


Thanks,
Fred
 
One more thing worth trying.

Create a new (blank) database.
Turn off Name AutoCorrect: Tools | Options | General.
Then begin importing the objects into the new database.

With a bit of luck, you will be able to import all the tables and queries,
and some of the forms and reports. The ones that can't be imported from the
corrupt database can be imported from a backup.

In terms of prevention:
1. Make sure you have the latest service pack for your version of Office
from support.microsoft.com. These address serious flaws: for example, the
original Access 2000 would corrupt if you imported objects from a different
version unless you explicitly recompiled.

2. Track down any user who crashes out of Access, or any hardware that
crashes while Access is still running. The inelegant shutdown is the one
thing Access does not handle well.

3. If you have multiple users, split the database and give each one an
independent front end. A single mdb file where you are modifying objects
while others are using it is asking for disaster.

4. During development, create a copy and compact regularly (e.g. 2ce a day,
and certainly after any crash). Watch for any sign of corruption (e.g. when
a compile does not stick), and decompile (command line switch).

5. Without proof, I would also suggest that you do not modify the code
behind a form while the form is open in any view except design view.

Our experience is that Access projects corrupt regularly during development
while the objects are being constantly modified. Once development is
complete, corruption is almost non-existent unless you have users who do not
close down properly or hardware (including network connections) that fails.
 
Mr. Browne,

Thanks for all your help. I appreciate all
the tips that you gave.

Yours truly,
Fred
 
Back
Top