I've never quite trusted ADO because I've never understood how their versioning system works. I just couldn’t see the various versions DLLs on my system and yet the Access references window showed five or six different versions.. Jet 3.5/DAO 3.5/3.51, Jet 4.0/DAO 3.6, and now ACE, as well as Jet back in Access 2.0 and Access 95, have always made a lot of sense to me. If there's a patch then msjet35.dll/dao350.dll or rmsjet40.dll/dao360.dll get updated. If there's a different version you get DLLs with the different version number on them. You can also see the DLL files in \Windows\System32 or C:\Program Files\Common Files\Microsoft Shared\DAO
ADO always had me confused. Look at the references list and you can see a bunch of different versions all pointing to a TLB file. I didn't really understand what a TLB file was until recently so that didn't help either. The TLB acronym stands for type library file. A TLB file, somehow, provides an interface and points to other files. Another definition is “A Type Library is a file that describes software implemented in another file(DLL/EXE/OCX). “ I’ve been using a shelllnk.tlb file for many years in my Auto FE Updater utility so it can create short cuts.
In the context of ADO, type libraries are used to insure that the software developer does not use new features that only exist in later versions. For example, if the developer used a feature that only exists in Windows Vista and after, i.e. ADO 6.0, then the software will not work on Windows XP.
In ADO, for example, the ADO 2.7 Library TLB file has the identical binary interfaces that ADO version 2.7 itself had. But msado27.tlb points to/interfaces with/references/whatever msado15.dll. See COM, DCOM, and Type Libraries for a definition if that page helps or confuses. Another definition is the first paragraph at What Is Type Library and How Is It Related to the Registry?
Thus the each version of MDAC/ADO updates all the various files. Unlike Jet/ACE there is only ever one set of files for all the versions. Although granted there are almost certainly more DLLs in later versions.
If you want to use a previous versions of ADO then you reference the appropriate version TLB file which in turn points to the latest version of msado15.dll file. The TLB files make the ADO interface to Access, or VB 6 or whatever, look like the same as that version of ADO when it was installed. But it’s really using the latest version of ADO to do the work.

You can see that quite clearly in these screenshots of the Access VBA references window. (I’m still on Windows XP SP3 if that matters.) ADO 2.7 references the TLB file while 2.8 references msado15.dll
Windows Vista , Windows 7 and Windows DAC (WDAC) 6.0
For Windows Vista MS decided to rename MDAC to Windows DAC and give it version 6.0. FAQ About Windows DAC/MDAC (The second section of that article tells you that version information is available at a KB article but that KB article only goes to MDAC 2.8. <sigh>)
ADO is version 6.0 in Windows Vista when you view the properties of msado15.dll and in the Access references list. In Windows 7 the DLL properties show version 6.1 but version 6.0 is displayed in the Access References Window. Confused yet about 6.0 and 6.1? Mind you that does make a bit of sense as MS, other than the Access product group, is now on some flavour of ADO.Net, etc, etc.
Also in the above screen shot from Windows 7 you can see the ADO 2.8 reference which is now a TLB file although I didn’t grab a screen shot.
Conclusion
If you have any users in fully patched Windows XP SP3 or Windows Server 2003 SP1 then you want to stick with ADO 2.8. If all your users are on Windows Vista, Windows 2008 Server or Windows 7 then you can use ADO 6.0. If you’re not sure if the users are on Windows XP SP3 then stick with ADO 2.7.
If you think you might have some Windows 2000 users then stick with ADO 2.5 which is what was shipped with Windows 2000. But at this date you shouldn't have Windows 2000 users as the OS won't be getting any more security patches. There is a redistributable MDAC 2.8 available but what’s the point?
Note that, like Jet 4.0/DAO 3.6, MDAC/WDAC/ADO are part of the OS and have been since Windows 2000. For example KB article 231943 states that Windows XP SP2 installed MDAC 2.8 SP1. And you can’t install WDAC 6.0 on Windows XP or MDAC 2.8 on Windows Vista. So don't bother attempting to install an older or newer version. Embrace what is already present. (How's that for a Zen comment?)
And don’t download a version from a site other than Microsoft if you are looking to solve a problem. When I was doing some research for this article using search engines i was amazed at the number of scummy websites.
Finally what’s the difference between ADO 2.1, 2.5, 2.8 and 6.0? I don’t know. I have seldom used it which is the point of this lengthy blog posting.
Somewhat Useful links
How to check for MDAC version
MDAC Utility: Component Checker
Microsoft Data Access Components (MDAC) release history
Support has ended for MDAC 2.7 Service Pack 1 and MDAC 2.8
Data Access Technologies Road Map
MDAC Downloads (but you shouldn’t need to download anything other than the component checker)
Note
Undoubtedly I will be getting some comments. I may change the contents of this blog so check back in a few days. I will attempt to mark the updates by italicizing them or in some other fashion but we’ll see how that goes.