Handling multiple instances of Word with multiple documents when Automating Word


I need to generate a word document with data stored in SQL Server 2005 using VB.Net.  

I use to do this sort of thing a lot in VB6 and I'm new to .Net.  I remeber that having different instances of Word open and multiple documents per Word instance always was a n problem until I found some VB6 code to take care of it. Never really understood the code though ....

My question is:  what is the correct way handling this problem in .Net?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

PantoffelSlippersAuthor Commented:
Doubled the points!

Any suggestions?

there are two methods createObject and getObject
use the getObject to get a previous instance of the application.

or create a word application at global level

open each doument using the same word application object.
you should also close the objects after creating it

set wordApp = nothing
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

PantoffelSlippersAuthor Commented:
OK but how do I know if an existing instance of Word is already running?  If Word is already open I would not like to open another instance.  

Also, in VB6 I would add a reference to the Word OLB file; is there a replacement in .Net for this or do I still add a COM object / OLB file?
try getObject first, if it generates error at runtime, then use the createObject
on error goto err_getObj

set s = getObject("...")
goto withOBJ
on error resume 0 'cancel on error
'we will have to create it
set s = createObject("....")


about olb for .net, i think the same.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
PantoffelSlippersAuthor Commented:
Any idea what goes inside the brackets?

set s = CreateObject("xxx")  :  what should xxx be?  Would the value of xxx change depending on the version of Word installed?  (2000, 2002, 2003, 2007).

Also, if I'm correct, you are using VB6 syntax above- will it be the same for .Net?

the object name is independent of the class name. so do not worry about it.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.