Solved

Runtime error 429- Active X Component can't create object

Posted on 2009-04-05
13
683 Views
Last Modified: 2012-06-21
I have one computer that continues to generate this error when trying to execute the following code (which works fine on other computers...)

When clicking debug, the following line is highighted:
Set myOlApp = CreateObject("Outlook.Application")

Here is what I have tried:
1.) Confirmed this function works on other computers.  It does.
2.) Confirmed no references are "missing" and that they are the same as the computers where this function runs correctly.
3.) "Ran"regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL" to reregister the DLL.  Message received was that the registration was successful.
4.) Re-installed MS Office 2000 SP-3.

What else can I do on this...?  After all of the above- still receive this error and Outlook does not open...


Thanks

Public Function AssignmentEmail()
 

    Dim myOlApp As Object

    Dim myItem As Object

        

    Set myOlApp = CreateObject("Outlook.Application")

    Set myItem = myOlApp.CreateItem(olMailItem)
 

   

            With myItem

                .To = Me.T_EXPERT_EMAIL

                .SentOnBehalfOfName = Nz(DLookup("default_email", "tblcurrentuser"))

                '.BodyFormat = olFormatRichText

                .BodyFormat = olFormatPlain

                If Me.T_PRIORITY = 1 Then

                .Importance = olImportanceHigh

                .Subject = Format(Me.T_TICKET_NBR, "00000") & "-IST *PRIORITY* Ticket-Category: " & Me.T_CAT_NAME

                Else

                .Subject = Format(Me.T_TICKET_NBR, "00000") & "-IST Ticket-Category: " & Me.T_CAT_NAME

                End If

    

        

             End With
 

    

    Set myItem = Nothing

    Set myOlApp = Nothing
 

End Function

Open in new window

0
Comment
Question by:snyperj
13 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 24071544
0
 

Author Comment

by:snyperj
ID: 24071550
Thanks. I have ruled out all 5 of those potential causes.  How about an improper version of MDAC?  Could that potentially be the problem?
0
 
LVL 8

Expert Comment

by:Emil_Gray
ID: 24071561
I would suggest totally uninstalling MS Office before reinstalling. I also would suggest you use "YourUninstaller" which can be downloaded and used for 21 days for free http://www.ursoftware.com/ to do so.
I ran your code and had no problems.
0
 

Author Comment

by:snyperj
ID: 24071699
Tried uininstalling with Your Uninstaller.. and re-then installed.  

Same end result.  Good 'ol microsoft.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 24071754
you are using late binding so references shouldnt be an issue.
problem seems to be with outlook so I dont think dao has anything to do with it.

Could be the library it uses (for outlook automation) has not registered properly or is corrupt for whatever reason. Thin is you said you have reinstalled, dunno if it clears down dll's or not.

Not sure what the dll is, I think you need to look out for msout*.*
either in windows dir\system32 or directory where office is installed

might be worth registering it   regsvr32 <nameoffile>. This has gotta be done on the problem pc.
0
 

Author Comment

by:snyperj
ID: 24071757
thanks... I see if I can search out he Outlook DLL and try to re-register...
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 65

Expert Comment

by:rockiroads
ID: 24071782
if u try to add the reference (so as to use early binding) then that should be one way to find it. eg office 2003 is office 11.0 and when u click it, it shows the path below.
0
 

Author Comment

by:snyperj
ID: 24071795
oK..thanks...using Outlook 2007 in correlation with Office 2000 (again...only a problem on this computer- fine everywhere else..)

Can I register an OLB file?

Clipboard01.jpg
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 24071822
dont think u can

now which outlook do you want to open, version in office2007 or office2000?

maybe worth specifying version? eg createobject("outlook.application.12") for office2007. Having 2 versions could be the reason why you are getting this problem.

the fact that you got the reference defined means you do not have to create the object. You can do this
 
    Dim myOlApp As outlook.application
       
    Set myOlApp = new outlook.application

0
 

Author Comment

by:snyperj
ID: 24071833
Outlook 2000 is not installed any longer.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 24071849
well if u add the reference then u are using early binding so u can define and instantiate the variable like I said instead of having to create an object
0
 

Author Comment

by:snyperj
ID: 24071889
Your right...it worked... Outlook opened ....

I am concerned though because I still have problem on this computer that doesn't exist on others- but I appreciate getting this code piece working.

The early binding, late binding is not clear to me so I am sure I have used create object elsewhere too...
0
 
LVL 65

Accepted Solution

by:
rockiroads earned 500 total points
ID: 24072008
simple explanation

early binding - this is when you add the reference in your database. Advantages are that you get to use the objects with their names, any constants are defined for you, can make use of the intellisense menu. Disadvantage of course is if you deploy this on a PC where that reference doesnt exist or the path differs then it will fail to run

late binding - You do not add the reference, have to create objects yourself and know the methods and properties available to use. Plus you have to substitute the constants with values (can be done by you defining your own constants). Advantage is you do not have to worry about broken references, differing paths. Disadvantage (though not too much nowadays considering the power of pc's) is the overhead in creating an object. also if you have different versions of that object installd, it may pick the wrong one (like in this case)

0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now