[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 415
  • Last Modified:

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.

0
CTM
Asked:
CTM
  • 10
  • 6
  • 4
  • +2
1 Solution
 
KMANCommented:
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?
0
 
devthaCommented:
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
0
 
mgrattanCommented:
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).  
0
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 
devthaCommented:
>?????????
0
 
CTMAuthor Commented:
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
0
 
KMANCommented:
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
0
 
devthaCommented:
How does it work CT?
0
 
mgrattanCommented:
devtha,

did you already fix this for CTM?
0
 
devthaCommented:
Yes CT sent me the mdb and I sent it back to CT?
0
 
devthaCommented:
Obviously after fixing the problem
0
 
mgrattanCommented:
So, what was the solution?
0
 
KMANCommented:
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?
0
 
devthaCommented:
Let us wait CT's response and I shall put the solution.
0
 
devthaCommented:
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.
0
 
devthaCommented:
CT your response?
0
 
PsychoDazeyCommented:
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
0
 
CTMAuthor Commented:
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
0
 
mgrattanCommented:
And the solution was.....?????
0
 
KMANCommented:
So devtha fixed the database, but my question is, did CTM learn anything?  I sure didn't.
0
 
devthaCommented:
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.
0
 
mgrattanCommented:
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.
0
 
devthaCommented:
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.
:-)
0
 
mgrattanCommented:
Thank you.
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 10
  • 6
  • 4
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now