Runtime error '429': ActiveX component can't create object. HELP!!

B

brazilnut

Hi. Let me explain the setup. I am using Visual Studio .NET to develop a sort of add-in (COM class) for Excel called SQLAddin. It basically queries a SQL server and pulls in data. Now within my Visual Studio Project, the SQLAddin references a compiled COM object built with Visual Studio 6.0 called SQLOld.dll. When I complie the project I get the following files in my \bin directory
SQLAddin.dl
SQLAddin.pd
SQLAddin.tl
Interop.SQLOld.dl

Within Visual Studio .NET I have set the project properties to "Register for COM Interop". The reason why I am mentioning the set up for the development for this project, is that this add-in works great on my computer. The VBA in Excel that accesses the object calls the functions correctly and correctly assigns the return values. BUT when I try to setup and run this Addin on another computer, it does not work. I get the error: Runtime error '429': ActiveX component can't create object. Let me explain my installation procedures for the other computer

To note, the computers I am installing the addin on all have the .NET Framework installed
First I copy over all the files in the \bin directory (as mentioned above) PLUS the actual SQLOld.dll. I also include the Excel file with the references and VBA code complied

So, if I go into Excel run the addin. I get the error. So then I think that perhaps the SQLOld.dll needs to be registered. So I run regsvr32 on the SQLOld.dll. The register succeeds, but when I run the addin again. I get the same error

So why does the addin work on my computer but not anyones else's? My hypothesis is that Visual Studio .NET is doing something behind the scenes when I compile. And I am not doing that on the other machine

Any ideas?

Thanks for you help
 
A

Alexander Nickolov

Try running depends.exe on your DLLs to check if you need
to redistribute other DLLs as well.

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: (e-mail address removed)
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================
 
N

Norman Yuan

You still need to register the actual COM dll (SQLOld.dll) on user's
computer, using "regsvr32.exe" that is: click Start->Run and enter
"regsvr32C:\mypath\SQLOld.dll".

brazilnut said:
Hi. Let me explain the setup. I am using Visual Studio .NET to develop a
sort of add-in (COM class) for Excel called SQLAddin. It basically queries a
SQL server and pulls in data. Now within my Visual Studio Project, the
SQLAddin references a compiled COM object built with Visual Studio 6.0
called SQLOld.dll. When I complie the project I get the following files in
my \bin directory:
SQLAddin.dll
SQLAddin.pdb
SQLAddin.tlb
Interop.SQLOld.dll

Within Visual Studio .NET I have set the project properties to "Register
for COM Interop". The reason why I am mentioning the set up for the
development for this project, is that this add-in works great on my
computer. The VBA in Excel that accesses the object calls the functions
correctly and correctly assigns the return values. BUT when I try to setup
and run this Addin on another computer, it does not work. I get the error:
Runtime error '429': ActiveX component can't create object. Let me explain
my installation procedures for the other computer:
To note, the computers I am installing the addin on all have the .NET Framework installed.
First I copy over all the files in the \bin directory (as mentioned above)
PLUS the actual SQLOld.dll. I also include the Excel file with the
references and VBA code complied.
So, if I go into Excel run the addin. I get the error. So then I think
that perhaps the SQLOld.dll needs to be registered. So I run regsvr32 on the
SQLOld.dll. The register succeeds, but when I run the addin again. I get the
same error.
So why does the addin work on my computer but not anyones else's? My
hypothesis is that Visual Studio .NET is doing something behind the scenes
when I compile. And I am not doing that on the other machine.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top