.NET Framework Bookmark and Share   
 index > 64-Bit .NET Framework Development > Adodb.dll - Can't get it to work on Vista 64
 

Adodb.dll - Can't get it to work on Vista 64

Hi, I've searching for a solution for this for the past few days, but to no avail.

I program in VB.net in an Insurance company. I have a program that I've created for this company,it was created on and for 32bit comps but recently I got a new comp with vista 64.
I found solutions for all the other compatibility problems except for adodb.dll.
At design time I can access all of its functions/methods and so on but when I go to run my program it crashes
on any reference to the above dll.

Dim rs As New ADODB.Recordset

The above line gives the following error

Retrieving the COM class factory for component with CLSID {00000535-0000-0010-8000-00AA006D2EA4} failed due to the following error: 8007007e The specified module could not be found. (Exception from HRESULT: 0x8007007E)

The main reason I'm using adodb is so I can export large amounts of data to excel using

xlSheet.Range("A" & xlrow).CopyFromRecordset(rs)

Does anybody know how to fix this problem?

Thanks,

Ger
  • Edited byHallo2ooo Wednesday, August 19, 2009 10:14 AM
  • Edited byHallo2ooo Wednesday, August 19, 2009 10:16 AM
  •  
Hallo2ooo
That makes it tougher, it must be missing a dependent DLL. You could perhaps find which one it is by using the SysInternals' ProcMon utility.

Hans Passant.
nobugz
I found the problem.
It was the way I had the file (adodb.dll) referenced in my project.
It was marked as "Embed Introp Types = True"
I changed it to False and the set "Copy Local=True" and "Specific Version=False". It works now.
Strange that, even though the file was there at design time, the program wasn't able to locate it at runtime.

Well hopefully this will help somebody else. Got me pretty worried.

Thanks for your help Hans,
All the best

Ger
Hallo2ooo
A DLL appears to be missing from your machine. It is c:\program files\common files\system\ado\msado15.dll. That's a very old one, might have something to do with it. Check if you have it in c:\program files (x86). Project + Properties, Compile tab, scroll down, Advanced Compile Options, Target CPU = x86 to use that one.

Hans Passant.
  • Marked As Answer byHallo2ooo Wednesday, August 19, 2009 12:40 PM
  • Unmarked As Answer byHallo2ooo Wednesday, August 19, 2009 12:40 PM
  •  
nobugz
Thanks for the response Hans,

I checked both those locations and the file is there.
Should I referencemsado15.dll in my project?

I had made my program target x86 before to fix another problem, so thats not it.



Ger
Hallo2ooo
That makes it tougher, it must be missing a dependent DLL. You could perhaps find which one it is by using the SysInternals' ProcMon utility.

Hans Passant.
nobugz
I found the problem.
It was the way I had the file (adodb.dll) referenced in my project.
It was marked as "Embed Introp Types = True"
I changed it to False and the set "Copy Local=True" and "Specific Version=False". It works now.
Strange that, even though the file was there at design time, the program wasn't able to locate it at runtime.

Well hopefully this will help somebody else. Got me pretty worried.

Thanks for your help Hans,
All the best

Ger
Hallo2ooo

You can use google to search for other answers

Custom Search

More Threads

• ActiveX control on the ie64 in Vista
• Spawn a 32 bit process from a 64bit dll
• DEVMGR.DLL problem under XP 64
• Windows 7 call to WTSQuerySessionInformation with WTSSessionID returns unexpected result
• Running a Custom Tool in 64-bit VS
• InvalidateRect user32 function declaration in vista?
• SignedCms.ComputeSignature
• 64bit hardware and compilation
• BIFE Hell
• 64 bit dll references 32 bit dll