Link to home
Start Free TrialLog in
Avatar of CTM
CTM

asked on

Run Time Error 429: ActiveX component can't create object

Hello,
     I'm receiving a "Run-time error 429: ActiveX
component can't create object" whenever I try to run
a ACCESS DB program. I've went to the MICROSOFT knowledge
base support site for an answer. Found one but when i
ran the Set dbs = DBEngine .OpenDatabase("<path>\<filename>"), I continue to get the same error.
Seems that in the Debug statement Set dbs functionality
is not saving the option that I set for it. Has anyone
experinced this problem before. If so what was the best
way to fix it. This question is worth 300 points, becuase
it's kicking my butt.

Avatar of KMAN
KMAN

You don't show all your code, but without opening a second instance of Jet, this is all you need:

Set dbs = OpenDatabase("<path>\<filename>")

Also, this collection is aonly available if you are using DAO. ADODB has no Database or Workspace collections, just Connections.

Is your DBEngine object valid when the Set dbs... happens?
Does one of your forms have a calender control or any ACTx control of that sort? If so see if you have a missing reference and if not then do not use the control on a continuos form
Is the database in Access 97 or 2000?  If it was converted recently from A97 to A2K you might need to adjust the project references.  Open any code module and select Tools/References from the menu.  Check the list and make sure that Microsoft DAO 3.6 is selected and shows up higher in priority than the reference for Microsoft ActiveX Data Objects (ADO).  
ASKER CERTIFIED SOLUTION
Avatar of devtha
devtha
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of CTM

ASKER

KMAN, MGRATTAN,DEVTHA,
                     To clearify the question. The MS Access in use is 97. I have a DEBUG statement that specifices that Set dbs is not configured (it's highlighted
in yellow). I can send each of you a copy of this via
email so that you may get more info that I'm not able to
provide. My email is psd31@navsta.rota.navy.mil. Email
me and I'll provide the Debug statement to you.

CTM
Looking at your code, I see you are not destroying collections when you are finished with them. Destroying means:
 Set dbs = Nothing
...for example.

In your code for Sub FillOptions, you set dbs to open an external Database, create some recordsets, the close, but you never destroy it.  Then your button code attempts to be set to CurrentDb.  This may not cause your error, but it is necessary to practice the collection destruction to prevent Access from hanging and inevitable corrupting.

Also, you could simply refer to CurrentDb when setting a recordset for this instance.  Like:
Set rst = CurrentDb.OpenRecordset("strSQL", dbOpenDynaset)

Hope this helps, K
How does it work CT?
devtha,

did you already fix this for CTM?
Yes CT sent me the mdb and I sent it back to CT?
Obviously after fixing the problem
So, what was the solution?
This has to rank up there with the worst threads in the Access Topic area.

Isn't the purpose of EE to solve problems but also to share solutions to the problems?  Why is this question different?
Let us wait CT's response and I shall put the solution.
KMAN:
Come on now, this solution is not accepted by CT. The db seems to be working fine so please be patient It was CT's who asked to send him an email for a copy of the mdb. I did respond and it worked out. So let us wait for his response.
CT your response?
CT-
I had this same issue and it turned out to be my .dll files.  Have you changed any .dll's or installed any new Microsoft programs?  If so, you will have to register your .dll using regsvr32.exe
Avatar of CTM

ASKER

Devtha,
      Thanks a lot. You did a excellent job on the Database. I really appreciate your help. I'm referring
you to one of the guys who wrote that database. He's
still in a learning curve on working with access. I'll
be sending him your email addresses. Again thanks.

CTM
And the solution was.....?????
So devtha fixed the database, but my question is, did CTM learn anything?  I sure didn't.
OK the database was in a uncompiled state and upon decompile and compile I got errors that I had to look into. There was a sub on one of the forms that was refering to chk boxes that never existed. I removed the sub also the form was crashing on the following lines.

'Set dbs = OpenDatabase("<path>\<filemane>")
    'TAKE A LOOK AT THIE FOLLOWING LINE CLARENCE
   
    Set dbs = CurrentDb()

I hope this calms you guys down and concentrate on some other questions.
devtha,

I think you know better than that.  You need to explain what was causing the form to "crash" on that particular line of code and what you did to resolve it.  That was the original question and, as yet, nobody has posted the solution to that question.

In your last comment, you posted the lines of code that were crashing but you did not indicate what the solution was.  Did changing the line from OpenDatabase() to CurrentDb() fix the problem?  If not, what did?  If that did fix the problem, why?

Don't get upset if we are asking for this information; it is expected by the users and other experts as well as by the moderators and I'm sure you are aware of this.
Thats is not a problem MG...I just cannot stand the sarcasm.

'Set dbs = OpenDatabase("<path>\<filemane>")
   'TAKE A LOOK AT THIE FOLLOWING LINE CLARENCE
   
   Set dbs = CurrentDb()

As you can see the commented line was causing problem.
and my comments for Clarence states that the following line was used instead.
That is why I did not delete the old line so Clarence can figure out the difference.
Rest I explained earlier.
Cheers.
:-)
Thank you.