We’ve had a bit of bother over the past few weeks, where an Access application compiled as an .accde file in Access 2010 would not run on other machines. The error messages encountered varied depending on whether the machine was running full Access or runtime. One of the messages was…
The database cannot be opened because the VBA project contained in it cannot be read. The database can be opened only if the VBA project is first deleted. Deleting the VBA project removes all code from modules, forms and reports. You should back up your database before attempting to open the database and delete the VBA project.
To create a backup copy, click Cancel and then make a backup copy of your database. To open the database and delete the VBA project without creating a backup copy, click OK.
…and this had me thinking my Office installation was corrupted or something.
But the most common message was along the lines of …
"Undefined Function <FunctionName> in Expression…"
… which made me think I had picked up a reference in my application that was missing from the target machines. I thought perhaps it was because I was using Windows 7 64-bit and the target machines were running 32-bit XP or Vista/7.
After trying many permutations, combinations, and perambulations, I ruled out both of the above, then stumbled upon the real issue…
As described in this Microsoft support article, an ACCDE that is compiled on Office 2010 SP1 will be incompatible with a machine running Office 2010 RTM (i.e. without the service pack). It turned out my machine was running 2010 SP1, whereas the target machines where the application failed were running 2010 RTM.
Once everyone is on the same SP, the problem vanishes.
And I think my confidence is restored that there should be no problem moving an application between 32- and 64-bit, Windows XP, Vista or 7, as Access automatically finds its core references, plus any custom ones so long as they on a PATH or in the application folder.
Incidentally, it’s not immediately obvious whether or not you have SP1 (which comes down in Windows updates). One way (in any Office app) to tell is to go to File > Help > About Microsoft Access (or whatever) > Additional Version and Copyright Information, which will show SP1 in the top line if you have it: