I maintain a Visual Basic 6 application that connects to the server using ADO. Recently a Windows XP SP3 computer started throwing this error when first connecting to the server component:
Run-time error 48:
Error in loading DLL
This was cause for much head-scratching and googling. Eventually I ran Sysinternals’ Process Monitor on the “bad” workstation and on another not having the problem. It’s hard to compare such voluminous output, but I had already suspected ADO, so when I searched for calls to msado15.dll and found that they were only present on the good workstation, I thought I would try to repair ADO, also known as Microsoft Data Access Components (MDAC).
Reinstall MDAC 2.8 SP1 on Windows XP SP3
At some point, either with XP SP2 or SP3, Microsoft stopped releasing standalone MDAC installers for XP. Fortunately, there is a way to kick off a reinstall using the files on your computer. Here is my procedure for repairing the installation under XP SP3, adapted from MSKB 899861, this post, and especially this post:
1. In Windows Explorer, right-click on C:\Windows\inf\mdac.inf and click Install.
2. You will be prompted for several files. If you have an SP3 CD, you may be able to use that. (My SP3 CD contained only the compressed service pack installer.) Otherwise, look for the files in the following locations:
adcjavas.inc – C:\Windows\servicepackfiles\i386
handler.reg – C:\Program Files\Common Files\System\msadc
MDACRdMe.htm – C:\Program Files\Common Files\System\Ado – you will need to rename MDACReadme.htm to MDACRdMe.htm.
oledbjvs.inc – C:\Program Files\Common Files\System\Ole DB
mssoap1.dll – C:\Program Files\Common Files\MSSoap\Binaries
mssoapr.dll – C:\Program Files\Common Files\MSSoap\Binaries\Resources\1033
To my relief, after the install completed, the VB6 app loaded right up. No reboot was required.