Better Backwards Compatibility
I have three version of MS Access - 2013, 2010 and 2007. I need this so if I develop a DB with library references (in particular the MS Excel library) and it has to work in an earlier version of Access (so if I developed it in 2013 but it has to work in 2010) I have to open it in 2010 and make sure the references are not missing before giving it to a user. I have tried multiple times to write code that will try and remove the missing reference and add a valid one but why? These are both MS products (Excel & Access). Why can’t Access recognize the user has a different version of Excel and relink the library itself? Outlook and PowerPoint references seem to be OK – it is just Excel.
David Peel commented
Whilst this would be nice, you can avoid most of these issues by using late-binding and not referencing the other applications.
Bob Massey commented
Fixing the "MS Access automated reference updating" is huge. My solution is that I still develop my base application in MS Access 2003. Because my clients still have MS Access 2003. (Side note: the MS Access Run-Time for Access 2013 is the first decent representation of the Design Environment MS Access.) I (feel that I) know first hand that developing with a later version of MS Access is better for me, but then I cannot regress the product to run on the client's computer(s).
= = =
Conversely, it takes strong discipline to NOT USE capabilities in later versions of MS Access when the base deliverable is to be compatible with MS Access 2003.
--- Conclusion: Visual Studio has detection of compliance of solution with prior versions of dotNET environments. MS Access should have similar capability.
Nigel Vandyk commented
Changing References for different versions of Office Products is a real problem. Although the References are upwardly compatible they are not downwardly compatible. So, if I develop a System which references a late version of MS Office, it will not work on the Client's PC who may be using an earlier version of Word or Outlook.
There must be a solution. It is not realistic to recompile on the Client Machine and impossible if they are using Access Runtime.