You may receive an error message when you convert a database from an earlier version of Access to Access 2002, to Access 2003, or to Access 2007

Moderate: Requires basic macro, coding, and interoperability skills.

This article applies only to a Microsoft Access database (.mdb) or a Microsoft Office Access 2007 database (.accdb).

For a Microsoft Access 2000 version of this article, see
224340 .

Error Message

When you convert a database from an earlier version of Microsoft Access to Microsoft Access 2002, to Microsoft Office Access 2003, or to Microsoft Office Access 2007, you may receive the following error message:
There were compilation errors during the conversion or enabling of this database. The database has not been saved in a compiled state. The performance of this database will be impaired because Microsoft Access will need to recompile the database for each session.

For information on improving performance, click Help.
In rare instances, the conversion utility may not convert some Access Basic code to Visual Basic for Applications code. For example, it may not change a DoCmd statement
DoCmd OpenForm "MyForm"
into a method of the DoCmd object:
DoCmd.OpenForm "MyForm"

What To Try

Conversion Errors

To see where the error or errors occur, compile all modules in the converted database.

Note For compilations that do not have any errors, you may still have to manually change some syntax in the database after conversion.

To compile all modules in a converted database, follow these steps:
  1. Open the converted database in the new version of Microsoft Access.
  2. Open a module in Design view.
  3. On the Debug menu, click Compile <Database Name>.
As Microsoft Access compiles your code, it stops at any line that contains an error. You can then modify the syntax to resolve the compilation error.

Incompatibilities with Certain Objects

If the conversion process seems to stop, takes a long time to finish, or displays an error that prevents the new database from being created, you can create a new database in Access 2002 or in later versions. You can then import objects (individually or grouped) from the database in the earlier version.

Importing objects into a new database has two benefits:
  • You can speed the conversion process by importing groups of objects. If you have a large database, the conversion process may be slow or may appear to cause your computer to stop responding. Importing groups of objects requires less memory and, in some cases, may be faster.

  • You can determine which objects are incompatible with Access 2002 or with later versions. If an object cannot be imported, you know to examine it more closely for a potential incompatibility. If an object is imported successfully, it is automatically converted to the new version.

    NOTE: In rare instances, corruption in an object may cause incompatibility with the later version of Access. If you suspect corruption, do not import that object. Instead, re-create it in the later version of Access. If the object is a Visual Basic for Applications procedure, try copying the text to a Notepad file. Then, copy it from that file later and paste it into a new module in the later version of Access.
To use the Import command instead of the Convert Database command, follow these steps:
  1. In Access 2002 or in Access 2003, create a new Access database.
  2. On the File menu, point to Get External Data, and then click Import.
  3. In the Import dialog box, click Microsoft Access in the Files of type box.
  4. Click the arrow to the right of the Look In box, select the drive and folder where the Microsoft Access database (.mdb) that you want to import is located, and then double-click the icon of the database.
  5. Click one or more objects to import. For example, you may want to import the objects in groups of 20.
  6. Click OK to import the selected objects.
  7. Repeat steps 2 through 6 until you have imported all the objects into the new database.
In Access 2007, follow these steps:
  1. In Access 2007, create a new Access database.
  2. Click the External Data tab, and then click Access in the Import group.
  3. In the Get External Data – Access Databasedialog box, click Browse to select the Microsoft Office Access 2007 database (.accdb), click Open, and then click
  4. In the Import Objects dialog box, select the objects that you want to import, and then click OK.
  5. Repeat steps 2 through 4 until you have imported all the objects into the new database.

Errors in Code in the Earlier Version

To reduce the number of errors that may occur during the conversion process, recompile all modules in the earlier version database. Then correct any errors before you convert the database.

More Information

For more information about other problems you may experience when you try to convert a database to Access 2002, click the following article number to view the article in the Microsoft Knowledge Base:

294755 You receive a corrupted VBA project error when you try to convert a database in Access 2002