Some Microsoft Access MDB Corruption Symptoms

[ Corrupt MDBs | AccessMain(Updated 2011/02/19)

1) 2239 - The database 'databasename.mdb' needs to be repaired or isn't a Microsoft Access database file.

1a) 2239 - The database 'databasename.mdb' needs to be repaired or isn't a database file. (This is the Access 2003 version of the standard corruption message.)

The database needs to be repaired or isn't a Microsoft Access database file

2) Operation failed - too many indexes - reduce the number and try again

3) Failure to open/failure to show error  Nothing happens.  Access starts up and you're sure you clicked on the MDB but the MDB doesn't open.

4a) 3011 - Microsoft jet database engine could not find object MSysDB.  Make sure the object exists and that you spell its name correctly and the path name correctly.
or "The Microsoft Jet database engine could not find the object MSysCompactError. Make sure the object exists  and that you spell its name correctly and the path name correctly"
or "The Microsoft Jet database engine could not find the object 'databases'. Make sure the object exists and that you spell its name and path name correctly."
or "The Microsoft Jet database engine could not find the object 'filename'. Make sure the object exists and that you spell its name and the path name correctly. "   This message can also be caused by ACC2000: Exporting to Word Merge Format After Renaming Field Causes Error - 225987.  Or in this article ACC2000: "Search Key Was Not Found in Any Record" Error Message During Compact or Save - 301474.  This message can also be caused by trying to import some text files however we're unsure of the exact reason or work around at this time.  

4b) 3011 - Microsoft jet database engine could not find object 'xyz.dbf'...  Notice the dbf file extension.  A dbf file name needs to be in 8.3 DOS name format.   It is quite possible that some machines can open the file with a longer file name and others it must be in 8.3 DOS name format.  Thanks to Marc L. Allen for this one.

5) 3259 - "Invalid field data type" when trying to open a table in either data view or design view or when viewing the relationships window.  This means the table definition is corrupted in the MDB.  While you can try the various steps below you will very likely require the assistance of a professional firm to recover your data.

6) 3112 - "Record(s) can't be read, no read permissions on 'databasename.mdb'"  Although ACC97: "..No read permission.." Error Opening Database w/ Code - 236878 and ACC2000: Error Message Running Macro in Secured Database - 209264 do mention this problem.  If you can get into the MDB then importing may very well work.  (There are slightly different versions of this message below.)

7) Unexpected error 35012 when opening a MDB ACC97: Error Message: "Unexpected Error 35012" When You Open a Database - 277925 or ACC2000: "Unexpected Error 35012" When You Open a Databases - 277924.

8) 1017 - "Could not find field "Description" It's possible the problem is with a table that has a self-join and Memo fields, and has referential integrity enforced. ACC2000: Table Corruption After Referential Integrity Checks - 296389  But it's more likely to be a sign of corruption. 

9) 3159 - "Invalid Bookmark" although there is a KB article ACC: Network Problems May Cause "Segment Load Failure" Error, "System Process - Lost Delayed Write Error" Error or "Invalid Bookmark" Error - 109730   However in this situation when the server has gone down or a network problem of some sort has occurred I've always gotten "Disk or Network Error" repeatedly.

10) 3197 - "The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time" This message most frequently is a symptom of a corrupt memo field. See Locating damage via code for sample code to help you locate the offending memo fields.

This error can occur when you are at one form, open another form based on that same table as the previous form, make a change to the data and not refresh the original form.  Or similar operations.  It can also be a sign of corruption as per ACC: Jet Database Engine 3.x Error Messages Due to Corruption - 182867
  - If Access 97 then ensure you are at Jet 3.5 SP 3 due to ACC97: Concurrent Appends to a Memo Field Can Cause Corruption and Produces the #deleted Symbol - 235391   
  - If SQL Server and Access 2000 then visit ACC2000: "The Microsoft Jet Database Engine Stopped the Process" Error Message When You Try to Delete a Record - 318882 
   - The following KB article Description of the Jet 4.0 Database Engine post-837001 hotfix package: April 12, 2005 is applicable to Win 2003 Terminal Server environments.   (Changed2006-12-28)

11) 3343 - "Unrecognized database format 'databasename.mdb'" or "This database is in an unrecognized format. The database may have been created with a later version of Microsoft Access than the one you are using. Upgrade your version of Microsoft Access to the current one, then open this database." ACC: Jet Database Engine 3.x Error Messages Due to Corruption - 182867.  Although this can be caused by trying to open an MDB using an older version of Access.   If Access 97 then ensure you're at Jet 3.5 SP 3 .

If Access 2007 then an accde or mde created in Access 2007 SP1 can't be read in Access 2007 without SP.  Error message when you try to open a compiled database file or a compiled project file in Access 2007: "This database is in an unrecognized format"

12) 2486 - "You cannot carry out this action at the present time".  Although it is possible to create this condition while in code.

13) 3167 - ACC2000: "Record Is Deleted" Error Message Opening Table/Query - 308630 mentions the following
    - Record is deleted.
    - Msaccess can't open the table in datasheet view.
    - Unable to carry out the command.
    - There was an error executing the command.

14) 3734 - "The database has been placed in a state by user '<username>' on machine '<machinename>' that prevents it from being opened or locked" is mentioned in the following KB articles but these are certainly not the only causes of the problem.
    - ACC2000: Opening Database Containing Form & Subform Causes Err - 248967 Install SR-1.
    - ACC2000: Canceling Form or Report Wizard Does Not Release Exclusive Lock - 248936 Install SR-1
    - PRB: Error Message 3734 Occurs When You Repeatedly Open and Close MDB File - 274211 Don't repeatedly open and close MDBs.  Smiley Sorry, couldn't help myself.  Yes, yes I know I shouldn't make fun of corrupted MDBs.

15) 2239 - "Needs to be repaired" message then "Not a valid password" 

16) 2573 - "The database has been placed in an unexpected state."

17) 2573 - "This database is in an unexpected state; Microsoft Access can't open it."

18) 3000 - "Disk Error -- Reserved error (-1601)" Opening Database - 302498

19) "Table 'TempMSysAccessObjects' already exists." when compact and repairing.  Try deleting the TempMSysAccessObjects table from within the MDB, after making a backup of course, or importing your objects into a new MDB.  PRB: "Table 'TempMSysAccessObjects' Already Exists" Error Message May Occur While Using the Compact and Repair Database Utility - 818099

20) 'AOIndex' is not an index in this table. See fellow Access MVP Dirk Goldgar solution at Fixing Corruption: 'AOIndex' is not an index in this table

21) Runtime error 3000 - Reserved Error (-1104); There is no message for this error.  "invalid session handle" whatever that means.

22) 3112 - "Record(s) cannot be read; no read permission on 'MSysAccessObjects'" In this situation you can try importing or the other suggestions however one of the system tables has been damaged.  Thus you might require a data recovery specialist.

23) 3112 - Record(s) cannot be read; no read permission on 'MSysObjects'
3112 - Record(s) cannot be read; no read permission on 'MSysACEs'.
3078 - The Microsoft Jet database engine cannot find the input table or query 'MSysAccessObjects'. Make sure it exists and that its name is spelled correctly.
The above messages might be solvable by ACC2002: Err Msg When You Convert .mdw File to Access 2002 - 282357

24) 3045 - "Could not use <name>; file already in use. (Error 3045) The specified file is currently being used by another user or session. Wait for the other user or session to finish working with the file, and then try the operation again." If you can open the MDB attempt to import the objects into a new MDB by following the instructions in the To retrieve your data section.  This can also be caused by the Connect String being too long: Access May Cause an Error When You Open or Delete or Compact Linked Tables - 811120.

25) 3019 - "Operation invalid without current index"
3015 - "'databasename.mdb' isn't an index in this table. Look in the Indexes collection of the TableDef object to determine the valid index names."  ACC: Jet Database Engine 3.x Error Messages Due to Corruption - 182867. These two messages in Access 97 can usually be fixed by downloading the latest version of Jet 3.51. Jet 3.5 SP 3 This problem also existed in Access 95 but hopefully no one is still using that version of Access.

26) 3043 - "disk or network error" is a generic message almost always indicating a network problem of some sort.   Once it's encountered your database may be corrupted.  However there are some exceptions.  Do a search at the Knowledge Base to view more than just those below..
PRB: "Disk or Network Error" or "Unspecified Error" Returned when Using Jet [Q251254] mentions ODBC, OLE DB and MDAC and where the system is missing the temp directory or is incorrect in the TEMP/TMP environment variables.
ACC2000: Error Exporting to Existing Paradox or dBase Table [Q209540] you cannot export a Paradox or dBase table over the top of an existing, corrupted Paradox or dBase database file
Windows 2000 Terminal Services Incorrectly Closes Files on Remote Shares [272582]
ACC2002: "Disk or Network Error" Error Message When You Open Access 2.0 Database Files This problem may occur if the Access 2.0 file name or a folder name in the file path contains Double Byte Character Set (DBCS) characters.
26a) Two machines have a duplicate IP Address.    Network problem, suggestions sought The troublesome machine had been hardcoded an IP address which was happened to be just past the end of the DHCP allocated IP addresses.  The problems started happening when the IP address was being used by two systems.

27) 2573 - "This database is in an unexpected state; Microsoft Access can't open it..  The database has been converted from a prior version of Microsoft Access by using the DOA compact database method instead of the convert database command on the tools menu. This has left the database in an unconverted state."
    By Peter Miller:
This error message is incorrect, or more to the point, its correct, but not because of anything you did. When the CompactDatabase method is used, you can specify a version number for the destination file. You should never specify a version other than the current version for typical Access databases, because this method will not convert application objects. The error message is telling you that you did this with the wrong version number. The cause is usually that Access/Jet screwed up, and when the database was compacted, the version parameter was corrupted, resulting in improper version information in the resulting file.

28) "This database is in an unexpected state; Microsoft Access can't open it.
        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 data.  Your other database objects can't be recovered."

This message can happen if your shortcut is missing the workgroup security file.  Otherwise it is usually due  to some corruption that has occurred in the mdbs project (forms, reports, macros, modules). Click here to view a posting by Frank Miller with code to retrieve the tables and queries.

29) 3001 - Invalid argument. This one typically happens when clicking on a corrupted record within a table. Or by running a query or form against that record. All the fields show #Error.  See Damaged record(s) within tables.  Another cause may be missing Access 2000 SR-1 if you are trying to " import data, copy a table, or run an append query " See You may receive an "Invalid argument" error message when you run an append query, run a make-table query, or import data in a large Access database file - 302495.   Also see You may receive an "Invalid argument" error message when you run an append query in a large Access database file - 835416 which states that your MDB may be approaching the 2 Gb size limit.  (Or 1 Gb for Access 97 MDBs.)

30)  3163 - Field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data This likely means you have some corrupt records in your data.   See Corrupt Records in a Microsoft Access MDB.   If this happens when you are doing a compact and repair then you will have to determine which table has the corrupt records.  You can try importing the MDB into a new MDB and see which table(s) didn't import.   Alternatively open up each table individually and scroll to the bottom.    When Access gives you an error message or crashes then you've found a corrupt record.  Note that there can be multiple corrupt records.

31) ACC2000: Error Message: Error Accessing File. Network Connection May Have Been Lost - 304548. Office 2000 SP3 solves this problem according to ACC2000: Issues Fixed in Access 2000 by Office 2000 Service Pack 3 - 326605.
        Otherwise if you're experiencing this as per the Q article then Microsoft Product Support Services personnel (via a regular, non-paid support incident) should be able to assist you in obtaining this update. Quote the Q article number to help insist in not giving your credit card number. One possible partial solution, as suggested by a fellow MVP, is to use Access 2002 for all your work in an Access 2000 format MDB and only use Access 2000 when you need to do some testing and/or creating the MDE or use the Package and Deployment Wizard.

32) I've personally seen msaccess.exe - Application Error "The instruction at "0x12345678" referenced memory at "0x90abcdef". The memory could not be "written" which decompile fixed.   Where the eight digit numbers were different each time I started up the MDB or at random times when working with the MDB.

(Several months later.)  Turns out this problem was almost certainly caused by some bad RAM up around 891 Mb of a 1024 Mb RAM system.  <sigh>  So if you're getting this problem I strongly urge you to use Memtest86 - A Stand-alone Memory Diagnostic.  It worked for me.  Among other things this test can be downloaded as an ISO image which results in a self booting CDR.   Also see Microsoft's Windows Memory Diagnostic

(Several months even later). This problem must have been caused by the bad RAM as I've never gotten the message since the RAM was removed and replaced.

33) "When you compact or when you try to open or to delete a linked table from an Access database window, one of the following behaviors may occur

CAUSE
The path or the Connect property of the linked table exceeds 128 characters in length."
Access May Cause an Error When You Open or Delete or Compact Linked Tables 811120 

34) The Visual Basic for Applications project in the Database is Corrupt.  

35) The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship but with a twist.  A copy of the MDB was made and every form and table was removed except for the offending table.   And that still gave the message even went you went to add a record in table datasheet view.    Importing the table into a new MDB fixed this. 

36) #Deleted appears in column in MDB, but data is good when using an Access 2003 MDB and a SQL Server database. This is a rather interesting ODBC driver bug.

37) All data in tables and queries shows as "#Name?".  You no longer see any objects in the navigation pane.  Also see Issues that you may encounter when you open or are using a Microsoft Office Access database on a computer that is running Windows Vista - 935370.   Note that this is an SMB 2.0 issue and thus Small Business Server 2003 could also have ths problem.  This could also be a performance problem.

#38) Reserved error (-1524); there is no message for this error. You have a corrupted record in that table.  See Corrupt record(s) within tables

#39) Microsoft Office Access has detected that this database is in an inconsistent state, and will attempt to recover the database. During this process, a backup copy of the database will be made and all recovered objects will be placed in a new database. Access will then open the new database. The names of objects that were not successfully recovered will be logged in the "Recovery Errors" table.  This is the Access 2007 message telling you the MDB is corrupted.  Identical to the message in items 1) and 1a)

Microsoft Office Access has detected that this database is in an inconsistent state...

[ Corrupt MDBs | AccessMain ]

Auto FE Updater   Auto FE Updater distribute new and updated Front End databases to your users with several mouse clicks.

Wrench and gear Granite Fleet Manager - the best designed fleet maintenance tracking and management system available

Comments email Tony  Search Contact Tony's Blog Privacy Policy Table of Contents

Website copyright © 1995-2013 Tony Toews