[AccessD] Getting ALL word instances

Bryan Carbonnell Bryan_Carbonnell at cbc.ca
Fri Jan 30 11:33:42 CST 2004


What I said about the close buttons should hold for XP, except, IIRC,
there is a setting that will allow you to switch Word back to an MDI
interface, like W97 and not an SDI like W2K.

Bryan Carbonnell
bryan_carbonnell at cbc.ca

>>> JColby at dispec.com 30-Jan-04 10:26:54 AM >>>
>What version of Word are you dealing with?

Office2K or XP

>Basically yyou need to keep track of if you open Word or are reusing
an
already opened instance of Word and only closing Word if YOU created
it. You
will still need to close your docs though.

That's what I thought.

Thanks,

John W. Colby
The database guy


-----Original Message-----
From: Bryan Carbonnell [mailto:Bryan_Carbonnell at cbc.ca] 
Sent: Friday, January 30, 2004 9:29 AM
To: accessd at databaseadvisors.com 
Subject: Re: [AccessD] Getting ALL word instances


> It LOOKS like when several word documents are open, each one is an
instance
> of word.  There is an icon in the toolbar for each document.  I have
the
> following code (which works, kind of):

What version of Word are you dealing with?

Word 2K (and Higher I think) actually only open one instance of Word,
but put each document in it's own "button" in the task bar.

If want to visually verify that you only have one instance open, have
a
look at the Close buttons in the Upper right corner. If you have two
documents open, when looking at either document you should only have a
close button in the title bar if the docs are in the instance of Word.
If you have a close button in the tile bar AND the menu bar, then you
have two separate instances of Word open.

I see a couple of problems with your code. Basically what I don't see
is how you deal with Word not being opened at all.

Here is how I deal with automating word:

'Get pointer to Word Object
' Handle Error In-Line
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If Err.Number = 429 Then
    'If we got an error, that means there was no Word Instance
    Set objWord = CreateObject("Word.Application")
    'Set Flag to let us know we opened Word
    bolOpenedWord = True
End If

'Make Word Instance visible
objWord.Visible = True
'Reset Error Handler
On Error GoTo 0

'Do your processing stuff here

'Time to close up shop
'Did we create the Word instance we are using
' or did we reuse an open instance?
If bolOpenedWord = True Then
    'We created an instance, so now we need to close it.
    objWord.Quit
End If
Set objWord = Nothing

Does this sort of answer your question?

Basically yyou need to keep track of if you open Word or are reusing
an
already opened instance of Word and only closing Word if YOU created
it.
You will still need to close your docs though.

Bryan Carbonnell
bryan_carbonnelL at cbc.ca 

>>> jwcolby at colbyconsulting.com 30-Jan-04 8:58:19 AM >>>
Folks,

I am trying to clean up after my merge stuff.  If the user fails to
close
the document, I have to do so before I can continue.  My mail stuff
opens
two documents, which appear to be TWO instances of word.  Further the
user
may already have a document of their own open.

It LOOKS like when several word documents are open, each one is an
instance
of word.  There is an icon in the toolbar for each document.  I have
the
following code (which works, kind of):

Public objWord As Word.Application

Function OpenWord() As Word.Application
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    If objWord Is Nothing Then
    Else
        objWord.Visible = True
    End If
End Function

Function TestWrdClose()
    OpenWord
    objWord.Quit False
    Set objWord = Nothing
End Function

The problem is, that if I have three docs open, when I call
TestWrdClose ONE
TIME, all word docs close.  So....

I need to close any instances of word that I opened, yet leave any
instances
that THEY opened.  I know (think) I can use code like

First question... Is it possible to open an instance of Word and give
it a
"name" such that I can search for that "name", get a handle to that
instance, and then close it?.

Second question... I assume that in order to close it, all I need to
do
is
use the application.close once I have a handle?

Or is it just a simple matter of closing all my own documents, then
seeing
if any documents are open, and if not closing the word instance?

John W. Colby
www.ColbyConsulting.com 


_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com 
http://databaseadvisors.com/mailman/listinfo/accessd 
Website: http://www.databaseadvisors.com 
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com 
http://databaseadvisors.com/mailman/listinfo/accessd 
Website: http://www.databaseadvisors.com 
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com 
http://databaseadvisors.com/mailman/listinfo/accessd 
Website: http://www.databaseadvisors.com


More information about the AccessD mailing list