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.

link|improve this question

56% accept rate
feedback

1 Answer

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).

link|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
feedback

Your Answer

 
or
required, but never shown

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