Files Created in Microsoft Access 2007 SP1 Do Not Run Under the Original
Access 2007 Version
by Luke Chung,
President of FMS, Inc.
Error Message: The Visual Basic for Applications
project in the database is corrupt
You create a Microsoft Access 2007 database (.accde, or
.mde or .ade) file to give to your users. It runs fine on your machine
and for several other users, but some people get this error dialog as
soon as they run it:

For the life of you, you can't figure out why. The
message says the VBA project is corrupt, but the same file runs fine on
other machines. And since it's an MDE/ACCDE/ADE file, the user can't
modify it making it doubly confusing how they could have corrupted it.
In fact, it has nothing to do with VBA or database
corruption. Your database is fine. It just won't run on that machine.
The Microsoft Office 2007 SP1 Hotfix Package
In January 2008, Microsoft released hotfix service patch
SP1 for Microsoft Office 2007. This included SP1 for Microsoft Access
2007 and fixed a variety of issues.
Unfortunately, a side effect of this new version is a
break of backward compatibility of MDE, ACCDE, and ADE files created
under SP1. Patches in prior versions of Access never broke backward
compatibility within their own version, so this is a new challenge for
Access developers.
About MDE, ACCDE, and ADE Files
.MDE, .ACCDE, and .ADE files are created from *.MDB, *.ACCDB
and *.ADP database formats respectively. These files allow developers to
create databases for users while preventing users from modifying form
and report designs and module code. It's also a smaller file.
For example, an ACCDE file is built in Access 2007 by
opening an ACCDB file and choosing the Make ACCDE item from the Database
Tools ribbon:

Which Microsoft Access 2007 Version is Installed
You can tell if you have SP1 installed by selecting
Access Option from the Office button on the far left, and selecting
"Resources" on the left border menu. In the About section at the bottom,
the version number is listed as 12.0.6211.1000.
The original shipping version of Microsoft Office Access
2007 is 12.0.4518.1014.
Programmatically, within your database, you can run this
code to determine the current build of Access 2007:
-
Application.Build()
This returns 4518 for the original version and 6211 for
SP1. The Application.Version() command tells you the Access version
(12.0).
Of course, the programmatic feature doesn't help if your
database won't even start.
The Solutions
There are a few ways to solve this problem:
-
Make sure all your users are upgraded to the SP1
version of Access 2007.
-
If you can't control the Access 2007 version your
users are running, you need to create your MDE/ACCDE/ADE file in the
original Access 2007 version. They will run fine under SP1. The
hassle is that you'll need to keep a separate machine with the
original version of Access 2007 and not allow it to receive
automatic updates from Microsoft.
For more information on the patch and issues with this,
read these Microsoft KnowledgeBase Articles:
Hope this helps. Good luck!
Return to the tips
page
|