Reputation:
I have a database in Access 2013. It has References to the rest of Office 2013, e.g. Microsoft Outlook 15.0 Object Library. I want to save a copy in mdb format and send it and related files and folders to a colleague in another part of the UK. I have made an mdb copy of the database but the references are still for Office 2013 as that's part of my system. I could set up a virtual machine using Office 2003 but I'd rather avoid that. Is there a way of making a version of the database fully compatible with Office 2003 without using a machine with Office 2003 installed?
Upvotes: 0
Views: 461
Reputation: 55806
I could set up a virtual machine using Office 2003
Then you should do so. It may initially take a little more, but you will be confident that the final result will run on your colleague's machine.
Upvotes: 1
Reputation: 107567
Generally speaking, compatibility really depends on how complex your database is. Like updates to any software, certain features will not be available. Just the facts of life!
VBA Late-Bind
To avoid reference library incompatibility, across all functions and subroutines have any referenced object call be late binded. So turn all early binding to late binding and uncheck previously selected references except default ones (usually VBA, Access object library, Database engine object). Use Option Explicit
to force explicit declaration. Once revision is complete, compile the database code and see if all is cleared. Now, app should be usable irregardless of selected references.
Backward Compatibility
Even with VBA adjustments, table and form features still have compatibility issues. Here you can see the backward compatibility between Access 2010 and 2007 and Allen Browne's mdb to accdb comparison. Small items like calculated columns, multi value fields, data macros will be issues to resolve. Other wider Windows system items like service packs and Windows 32/64-bit may arise.
Runtime Version
If revision is too troublesome for you or your colleague, consider having him/her download the Access 2013 Runtime which is free but users are unable to make design changes. So make sure you design your Access app with that in mind (i.e., all user interaction on forms, not via navigation pane or ribbon).
Also, be sure to avoid any interaction with the fully installed Access program. But your colleague's 2003 version would not recognize .accdb extensions. In fact, I remember working with a client who only had Access 2003 but installed and used an AC2010 Runtime without any issues.
Upvotes: 1
Reputation: 48989
When you convert the file to an mdb, then if you open the application in any version say from 2003, to 2013, then EACH version that opens the database will replace and re-set the references required.
The above of course assumes the minimal references are set. (in other words the ONLY references that exist are the ones that Access needs, not external references to applications like Word or Excel).
You can “find out” the minimal requirements by simply creating a BLANK database in 2013, and then ctrl-g to the VBA editor and then going tools->references. This “min” list thus should be what your 2013 database has.
AFTER you create the 2000-2003 mdb (file->save as), then you note the references are again the “min” list.
When such applications are opened in 2010, 2007, or even 2003, then the references for “internal” use are changed on the fly.
So you should not have to nor need to change the references. That user with 2003 should thus be able to open the database.
However this assumes your references are set to an absolute min as outlined per above.
If you are planning to do any development of VBA code, then you for all practical purposes MUST develop in the lowest common version. Going from higher to lower versions in general will not work well at all.
For a “one time” data export, and “min” references, you can do the above steps. And for just data, then references will not matter. However if this is an “on-going” application, then you need to use Access 2003 for development. Such applications can be used by say 2013, but going “backwards” in the computer industry is something that in general does not and has not worked well for the past 25 years of this industry.
Upvotes: 0