Click here to Skip to main content
15,893,487 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello everybody; Happy New Year for all readers and members !!.

Actually I´m working with an old and unfinished project developed with Access 2010 (please don´t ask me why, I even never worked before with this platform).

A vendor supplied us with a couple of new dlls, which are replacing old ones, with the same name (id) and with almost the same functionality.

I just copied and replaced the new ones to the folder where they where installed, I did not added to the project references because they are already there (well the older ones).

When I run the code (VBA), it instances well a new object of the class, but in the first attempt to assign a value to one member of it, the programa fails and sends me the error "Activex component cannot create the object". Error number 429.

I'd really appreciate your help. I know a must keep on searching for an answer thru the internet, but I would really like to save time.

What I have tried:

I'd been searching thru google and saw that the problem may be that the new dlls are not registered in the windows register, so I'd been trying to set them up with the regsvr32 command; but I'm getting many error messages; just like if my windows password does not have administrator privileges.

The systems personnel (who know less about this than me), assured me that a do have such privileges.
Posted
Updated 2-Jan-18 10:29am

Those are COM-based .DLL's. You have to re-register them using REGSVR32, which takes admin permissions on the machine.

Without knowing the error messages, it's impossible to tell you what's going on.
 
Share this answer
 
v3
Comments
Miguel Altamirano Morales 2-Jan-18 14:11pm    
Hello Dave; thanks a lot for your answer.

The command is this: (without the quotation marks or with them, the response is the same)

regsvr32 C:\Windows\Syswow64\ProductosTransitorios.dll

And the response is something like this (it´s in spanish):

"The module was loaded, but the entry point "DllRegister Server was not found"

or when I enter the command regsvr32 "C:\Archivos de Programa(x86)\Common Files\microsoft shared\DAO\dao360.dll"

"The specified module was not found".

The people in the system area tells me that the windows password I have, has the necesary permission to do this; and I´m even running it via MS DOS as administrator.
Dave Kreskowiak 2-Jan-18 14:22pm    
OK, the first message means that it's NOT a COM-based .DLL, but a normal library .DLL. You cannot set a reference to that. It has to be loaded and accessed through P/Invoke. Those lines of code are described like this[^].

The DAO is a REALLY OLD database access technology that was deprecated a LONG time ago. Why you're still using it is beyond me.

The .DLL you're trying to register requires other .DLL's to be present in order to work. DAO was part of a few packages but hasn't been distributed in a long time. You can read more about how to get the thing up and running from here[^].

I HIGHLY suggest getting off of it and updating your application to use OLEDB instead.
Miguel Altamirano Morales 2-Jan-18 14:45pm    
Yes, Dave; I'm very aware this DAO technology is very old; and I already told that to my clients, but they just want me to fix this old system developed with access 2010; they are very .... (well, I don´t want to insult them, let's say 'reluctant'. I'm doing this only for the money, I just need it so bad). I'm trying to convince them to develop a new system, but, you know, they want to see some results first. They have spent a lot of money and time with this project.

Thank you very much for your references; I'm going to study them after lunch.

Saludos, Dave !!!
I'd suggest to read this: ActiveX component can't create object[^]. There you'll find 5 reasons which may cause such as error message.

Another reason...
Sometimes, when MS Access database is used on workstations (computers) without full version of MS Access, you may need to reinstall (repair) MS Access 2010 Runtime[^].

You have to provide more details about your dlls. Without knowing its names versions etc., we can't help you...
 
Share this answer
 
Comments
Miguel Altamirano Morales 2-Jan-18 17:03pm    
Thanks a lot Maciej: First error (mine, of course): One of the dlls, I mentioned, "DAO360.dll" is out of this problem. The dll this project is using is "ACEDAO.dll", and it resides on "Microsoft Office 14 Access database engine object library2" and it´s working fine. I am sorry.

The other dll is a "hand made" (just to say something, is not a COM library) developed by our vendor is alreay included in the project references, I just replaced it in the folder where is supposed to be. I have no access to the code; i just see the properties and methods via the objects explorer.

Does the gacutil command be useful with this ?. The project is old; developed with Access 2010
Maciej Los 2-Jan-18 17:38pm    
A "hand made" dll must be a COM dll if it has to work with MS Access database. There's no other option!
Please, contact with previous developer (provider, vendor) to get details about such old project.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900