John W. Colby
jwcolby at colbyconsulting.com
Thu Aug 18 07:44:01 CDT 2005
Joe, Compatibility between versions depends on two factors, the container version used for the MDE and use of features specific to that version. Let's discuss this in two parts: CONTAINER: If your users use A97, A2K, AXP and A2003, it should be possible to build the mde in and A97 container and all of these versions should be able to open the thing and use it. IIRC, there is a "great divide" between A97 and anything after where if the container is opened in any version AFTER A97 the user will be able to open (and use it) but not make changes to it, i.e. it is opened read only. For this reason alone it is convenient if you can assure that all clients will use A2K or later. If you use A2K and later, then it becomes a "simple" rule: Access can only open the version it creates or earlier. For example, A2K can only open A2K containers, it cannot open AXP containers. If you create an MDE using a native AXP container then A2K users will get a "bad database format" error message if they try to open it. If you use an A2K container, then A2K and all versions after will be able to open the container, and also to read / write to it. RULE: Use only A2K containers to build databases that need to be read/writeable by Access versions A2K and above. VERSION SPECIFIC FEATURES: Microsoft takes great care to try and ensure backwards compatibility (No, I don't work for them). For that reason, virtually any feature used in an A97 database can be used in A2K or above. However, Each version can and does add features. Obviously in general these features cannot be used by previous versions. A good example of this is raising events. A97 could SINK events in classes which were raised by objects passed in to the class. However A97 cannot RAISE events of its own. A2K and above can raise events. Thus if your code raises events, that will not be useable in A97. RULE: Discover whether you are using version specific capabilities and either not use these capabilities or be prepared to limit your distribution to versions of Access at least the version you are developing in or later. I use AXP and A2K. I don't know of any capabilities in AXP that are not useable in A2K. I think once you get out to A2003 you start to run into things like XML import/export which is just not available in AXP and previous versions. Obviously if you were to develop in A2003 and you use these features, even if you use an A2K container neither A2K nor AXP will function correctly. Hopefully this discussion has given you a better idea of how to approach compatibility issues. AFAIK, using an MDE in and of itself does not place any restrictions on which version of Access can use the database. The container type and Version Specific Functionality will be the sticking points. John W. Colby www.ColbyConsulting.com Contribute your unused CPU cycles to a good cause: http://folding.stanford.edu/ -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Joe Hecht Sent: Thursday, August 18, 2005 12:54 AM To: 'Access Developers discussion and problem solving' Subject: [AccessD] MDE question If I do an app in Access 2K3 and make an .mde out if it will older versions of Access be able to use it? I guess the question is what is the effect on backwards compatibility with mde Joe Hecht Los Angeles CA -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com