[AccessD] Doc Merge from Access

Mark Simms marksimms at verizon.net
Mon Oct 4 09:20:22 CDT 2010


Bill - here's a module-level function (CloseWordDocs) I called before doing
a mail merge.
The secret could be the Activate and/or Visible property settings.
I do know that it kept Word "on top" after the merge was completed.
Bottomline: I called this right before performing the merge.
It's purpose was to "clean-up" any merge-type of Word documents still left
open by the user.
gAppWord is a global variable set to the handle of the word application.

Right after the merge, I do this :
  gAppWord.Activate ' Re-focus on the Word App
  gAppWord.ScreenUpdating = True
  gAppWord.WindowState = wdWindowStateMaximize
  gAppWord.ActiveDocument.Activate

' This removes any open Word documents
Public Sub CloseWordDocs(ByVal bCloseTemplate As Boolean, Optional ByVal
bQuitWord As Boolean = False)

  Dim i As Long, cnt As Long
  Dim oMainDoc As Word.Document

  If Not gAppWord Is Nothing Then
    On Error Resume Next
    gAppWord.Visible = True
  End If
  If Err.Number <> 0 Or gAppWord Is Nothing Then
    On Error Resume Next
    Set gAppWord = GetObject(, "Word.Application")
    If Err.Number = 0 Then
      On Error Resume Next
      gAppWord.Visible = True
      If Err.Number = 0 Then
        gAppWord.Activate
        gAppWord.WindowState = wdWindowStateMinimize
      Else
        Exit Sub ' Word is not open, so exit immediately
      End If
    Else
      Exit Sub
    End If
  End If
On Error GoTo Err
  With gAppWord
  Select Case .Documents.Count
  Case Is = 0

  Case Else
    For Each oMainDoc In .Documents
    oMainDoc.Activate
      If bCloseTemplate Then
        On Error Resume Next ' required since not all docs have mailmerge
fields !
        cnt = oMainDoc.MailMerge.Fields.Count
        If Err.Number <> 0 And cnt > 0 Then
          oMainDoc.Close False
        End If
        On Error GoTo Err
      Else
        oMainDoc.Close True
      End If
    Next

  If bQuitWord Then
    .Quit
    Set gAppWord = Nothing
  End If

  End Select
  End With
Exit Sub
Err:
  MsgBox "Error in CloseWordDocs:" & Err.Number & " " & Err.Description,
vbCritical, APPTITLE
  Set gAppWord = Nothing ' seems to be required
End Sub

> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of
> Bill Marriott
> Sent: Monday, October 04, 2010 4:06 AM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Doc Merge from Access
>
> Yes Charlotte I  tried that to no avail.
> I ran the debugger and there did not appear to be any more
> code running in Access after the DoCmd.RunCommand
> acCmdAppMinimize However Access keeps popping up in my face
> like a recalcitrant Jack in the Box when it should stay minimized?
>
> Bill
>
> On Mon, Oct 4, 2010 at 3:52 AM, Charlotte Foust
> <charlotte.foust at gmail.com>wrote:
>
> > Just as SWAG but I suspect the problem is that when you
> click on the
> > Word Doc, the Access window is no longer the active window,
> so you're
> > spinning your wheels.  Have you tried using the RunCommand
> to minimize
> > before you follow the link (which I presume is to the Word doc)?
> >
> > Charlotte Foust
> >
> > On Sat, Oct 2, 2010 at 7:13 PM, Bill Marriott
> > <bill.marriott09 at gmail.com>
> > wrote:
> > >>
> > >> Hi Group,
> > >>
> > >
> > > I am running Access 2010 on Win 7
> > > I would like the user to click on a hyperlink to open the
> > > appropriate app with the correct file and have the Access
> minimized
> > > while the user can
> > view
> > > the hyperlinked file.
> > >
> > > The following code works but after minimizing the Access App' for
> > > only a second and opening up Word with the correct file
> Access opens
> > > up again on top.
> > >
> > > Private Sub txtCV_Click()
> > >  If Not IsNull(Me.txtCV) Then
> > >    'ActiveWindow.WindowState = wdWindowStateMinimise
> 'tried this and
> > >    FollowHyperlink Me![txtCV], , True
> > >   DoCmd.RunCommand acCmdAppMinimize
> 'tried this as
> > > well
> > >  End If
> > > End Sub
> > >
> > > Does anyone know why?
> > >
> > > thanks
> > >
> > > Bill
> > > --
> > > 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