ACC2000: Error Converting a Database with a Large Number of Forms That Have Modules

This article was previously published under Q225949
This article has been archived. It is offered "as is" and will no longer be updated.
Moderate: Requires basic macro, coding, and interoperability skills.

This article applies only to a Microsoft Access database (.mdb).

If your Microsoft Access 97 database contains several hundred forms, you may experience the following corruption error when you convert the database to the Access 2000 format:
The Visual Basic for Applications project in the database is corrupt.
If the database is successfully converted, you cannot view any module in the project.
This problem can happen if your Access 97 database has several hundred forms and each form has a Visual Basic for Applications module.
Open your original database in Access 97 and delete any forms that you do not need. Also, you may want to move some of the forms to another Access database before you convert the database. Continue deleting or moving forms out of the database until you no longer receive the error.

Also check to see if any form has a blank or unused module. If so, set the HasModule property of the form to No.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Steps to Reproduce Behavior

  1. Create a new blank database in Access 97 and name it ManyForms.mdb.
  2. In the new database, click Modules under Objects, and then click New.
  3. Type the following code in the new module. The code creates 900 forms, each with the HasModule property set to Yes.
    Sub CreateManyForms()   Dim f As Form, i As Integer   Application.Echo False   For i = 1 To 900      Set f = CreateForm()      f.HasModule = True      DoCmd.Close acForm, f.Name, acSaveYes   Next   Application.Echo TrueEnd Sub					
  4. On the View menu, click Debug Window.
  5. In the Debug window, type the following line, and then press ENTER:
  6. Close the module and don't save the changes.
  7. Close the database and quit Access 97.
  8. Open Access 2000.
  9. On the File menu, click Open.
  10. Locate the ManyForms.mdb and open it.
  11. When prompted, click Convert Database, and then click OK.
  12. During conversion, you receive the following message:
    The Visual Basic for Applications project in the database is corrupt.
  13. Click OK.
  14. If the conversion process creates the new database, open any form in Design view.
  15. On the View menu, click Code. Note that no module opens.

Article ID: 225949 - Last Review: 10/20/2013 22:48:33 - Revision: 2.0

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kberrmsg kbbug kbpending KB225949