Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm running Office 2003 (specifically Excel) on both a Windows XP 32-bit OS and Windows 7 64-bit OS. I have an excel file in which is referenced: "microsoft ado ext. 2.8 for dll and security". When run on the Windows 7 machine (from which the file was created) everything is OK. But when I try and run it on the Windows XP machine it throws an error whenever I try to use the ADO. I've noticed in the references dialog box that the above ADO's filename is different between the two machines.

Windows 7 > "C:\Program Files (x86)\Common Files\System\ado\msado28.tlb"
Windows XP > "C:\Program Files\Common Files\System\ado\msadox.tlb"

The XP machine does in fact have the "msado28.tlb" file in the ado directory and I don't know why the reference changes. Also, I have the same files in my "Program Files" directory on Win 7 as I do in the "Program Files (x86)" directory...but whenever I try to change the reference from the x86 to regular program files directory, it changes back to x86.

share|improve this question

1 Answer 1

up vote 0 down vote accepted

Turns out this wasn't really the problem at heart. Some compatibility problem between Windows 7 x86 and 32-bit prior versions of windows meant I could not use Early Binding in my VBA app. Switching to Late Binding via CreateObject solved my problems (but not the root cause).

share|improve this answer
To be specific, Windows 7 SP1 64-bit has an intentional ADO incompatibility with prior versions. You can switch to late binding, or recompile your application on an earlier version before deploying it. See support.microsoft.com/kb/2517589 and stackoverflow.com/questions/6190974/… . –  Hellion Jun 17 '11 at 4:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.