Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

VBA: Set oDom = CreateObject("msxml2.domdocument.4.0") = 429 ActiveX component can't create object

Posted on 2006-06-29
10
Medium Priority
?
3,784 Views
Last Modified: 2012-06-27
Hello guys (and girls)

VBA (Access 2003) - XP clients

I've written an app that using the line ...

Set oDom = CreateObject("msxml2.domdocument.4.0")

... and it works fine on 99% of my clients.

I have one XP client that fails on this line with ...

429 ActiveX component can't create object

... i'm utterly baffled as to why this machine should fail. It's XP - it's been kicking around a little longer than the others, but has Office 2003 installed.

Got any idea where I should be looking ? ... like I said, works fine on about 50 machines, this 1 machine fails ... i've checked 'References' and can't see anything missing ... I thought it was a standard reference.

Don't know what else to update ...

... I might try a resinstall of Office, I guess *hmmmm*

S.S.



0
Comment
Question by:SpencerSteel
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 11

Assisted Solution

by:leclairm
leclairm earned 400 total points
ID: 17010666
Does this computer have the msxml2.dll installed??
0
 

Author Comment

by:SpencerSteel
ID: 17010679
good question - i'll check ... why would the other XP machines and not this one ?

Was it a SP thing ? - I'll go and check now ... *runs downstairs*

S.S.
0
 

Author Comment

by:SpencerSteel
ID: 17010808
.... yes - it was there. I tried updating it with a version from a working client. No difference. I notice there was msxml3 and 4 there as well.

The user is leaving shortly, so I might try some Windows Updates, Office updates and a resinstall  or something.

There's always one ...

S.S.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 52

Assisted Solution

by:Carl Tawn
Carl Tawn earned 800 total points
ID: 17010977
You actually need to look for msxml4.dll, not msxml2.dll.

Time to run downstairs again ;o)
0
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 800 total points
ID: 17011802
Can you set a reference to msxml 4 on that machine just to test it is correctly registered?
0
 

Author Comment

by:SpencerSteel
ID: 17017044
Hello guys,

Right, there wasn't any MSXML4.dll files on that client, so I copied all of the MSXML4 files to the machine - and it still didn't work ...

Howwver - RORYA - excuse my ignorance, but how do I test if it is correctly registered .... remember, i'm just a lowly VBA developer !

And if I don't get back to you guys, it's because i'm on holiday all next week ... I will be back to solve this (at the moment, i've swopped out his machine)

Thanks so much,

S.S.
0
 
LVL 85

Assisted Solution

by:Rory Archibald
Rory Archibald earned 800 total points
ID: 17017077
Hi,
If the dll was not there and you have just copied it across to the machine, it cannot be registered. Open a command prompt window (Start-Run type cmd and press enter), change to the directory you copied the dll to - if it was C:\Windows\System32 and the prompt does not already say C:\Windows\System32>, then you would type:
c: and Enter
cd \windows\system32 and enter
then type
regsvr32 msxml4.dll
and you should get a message telling you if the registration succeeded.

HTH

Rory
0
 
LVL 52

Assisted Solution

by:Carl Tawn
Carl Tawn earned 800 total points
ID: 17017083
You need to copy two files for XML4. They are: msxml4.dll and msxml4r.dll

And you need to register msxml4.dll, which you can do by going to Start > Run and typing "regsvr32 msxml4.dll"
0
 

Author Comment

by:SpencerSteel
ID: 17017890
You all are wonderful !

I wonder why those DLL's were missing ? ... actually .... no ... wait ...

hang on a minute ....

... yes. I do believe, all of a sudden I couldn't care less anymore.

I am so fickle.

Have some points !

S.S.

0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 17018059
SS,
Ta for the points. Since you asked:
The DLL is a menial creature with all the enthusiasm of a sloth. As such, they never do anything off their own bat; rather they require to be called, and often poked with a WM_STICK message, in order to get them to do anything at all. Eventually, however, this sort of abuse takes its toll on the poor creatures and they have been known to slope off somewhere in search of a quiet life. They do seem to breed like rabbits though, so it's generally easy enough to find another one.
That's what I used to tell my users when they asked, anyway...
Regards,
Rory

PS I am, of course, lying - no user has asked me anything about a DLL. Ever.
PPS Yes, I have way too much free time today.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses

718 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