paix120
asked on
Error in Loading DLL in Visual Basic program w/ MS Word macros
Hi!
I'm usually good at figuring these things out, but I am stuck. I just got a new laptop that has XP Pro and everything is a little different. I ran a program that worked fine on my old desktop computer, but seems to be missing a DLL now.
It's a VB6 program that takes data from a database and formats it to paste into Word (I have Office 2000). The error is on the line where I first use my word document, after I initialize the word.application. Here's a segment of the code:
'open up a new word document
Dim Projects As New Word.Application
With Projects
.WindowState = wdWindowStateNormal
.Documents.Add "Normal.dot", , , True
.Visible = True
...
When I run I get an error that says Run-time error 48: Error in loading DLL. On debug, it highlights the "With Projects" line.
So I'm assuming it has to do with old references not working in XP, but I don't know how to find out which DLL is causing the problem or what I need to do to fix it.
Thanks!!
Paix120
I'm usually good at figuring these things out, but I am stuck. I just got a new laptop that has XP Pro and everything is a little different. I ran a program that worked fine on my old desktop computer, but seems to be missing a DLL now.
It's a VB6 program that takes data from a database and formats it to paste into Word (I have Office 2000). The error is on the line where I first use my word document, after I initialize the word.application. Here's a segment of the code:
'open up a new word document
Dim Projects As New Word.Application
With Projects
.WindowState = wdWindowStateNormal
.Documents.Add "Normal.dot", , , True
.Visible = True
...
When I run I get an error that says Run-time error 48: Error in loading DLL. On debug, it highlights the "With Projects" line.
So I'm assuming it has to do with old references not working in XP, but I don't know how to find out which DLL is causing the problem or what I need to do to fix it.
Thanks!!
Paix120
Hi paix120,
Try it this way
Set Projects = CreateObject("Word.Applica tion")
HTH
dragontooth
Try it this way
Set Projects = CreateObject("Word.Applica
HTH
dragontooth
ASKER
nope. same error.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Ok is Word installed on the laptop?
dragontooth
dragontooth
ASKER
Yes word is installed.
tedunni - sounds like a great idea, i've never heard of that. how do you use it? i'm not sure what dlls are in my project, so how do i know which ones to open? is there a way to tell which dlls are added when you add a reference in VB? (the DLLs are not explicitly in the code...)
thanks!
paix120
tedunni - sounds like a great idea, i've never heard of that. how do you use it? i'm not sure what dlls are in my project, so how do i know which ones to open? is there a way to tell which dlls are added when you add a reference in VB? (the DLLs are not explicitly in the code...)
thanks!
paix120
To be honest, I'm not too sure how to tell which dll's are added when you add a reference in VB, beside the actuall dll that is being added. In the problem that I had, it was pretty obvious what dll was giving me problems. So when I loaded this into dependency walker, it went out and found other dll's that were needed.
ASKER
hmmm... I can't figure out which dll is causing the problem.
Anyone know which dll is involved with ADO connection or with Word.Application? And how do I find out what the problem is when the error is so vague?
Anyone know which dll is involved with ADO connection or with Word.Application? And how do I find out what the problem is when the error is so vague?
ASKER
just as a test, i tried excel.application and got the same exact error... does it have something to do with MSO9.dll - the microsoft object library?
ASKER
when i run dependencies on the .exe, MSO9 doesn't come up...
ASKER
ok, i tried running:
regsvr32 "c:\program files\microsoft office\office\mso9.dll"
and got the error:
"C:\.....\mso9.dll was loaded, but the DLLRegisterServer entry point was not found. This file can not be registered."
What does that mean??
regsvr32 "c:\program files\microsoft office\office\mso9.dll"
and got the error:
"C:\.....\mso9.dll was loaded, but the DLLRegisterServer entry point was not found. This file can not be registered."
What does that mean??
ASKER
OK my friend solved the problem. It seems to only be a problem with XP Pro, not Win 2000.
You have to do late binding instead of early binding, i.e. dim it as "object" instead of "excel.application". However, I still had to reference the excel9.olb as well.
Hopefully that will help anyone that comes across this post. Nothing else I found online seemed to work!
Thanks for your help,
Renee
You have to do late binding instead of early binding, i.e. dim it as "object" instead of "excel.application". However, I still had to reference the excel9.olb as well.
Hopefully that will help anyone that comes across this post. Nothing else I found online seemed to work!
Thanks for your help,
Renee
ASKER
My friend says that the late binding does have its disadvantages - it may take up more memory, and also since it doesn't know what object you're talking about, it doesn't help you as much during development. But at least it solved the dll error I was getting!
I had a similar problem with Outlook 2000 in Windows 2000, and calling the variable an object rather than outlook.application worked.
Thanks for posting your solution - it looks like it'd work for any of the Office 2000 programs and not just Excel.
Thanks for posting your solution - it looks like it'd work for any of the Office 2000 programs and not just Excel.
ASKER