[AccessD] word automation not printing

John W. Colby jwcolby at colbyconsulting.com
Tue Mar 2 10:23:14 CST 2004


Thanks Gustav, Mark.

John W. Colby
www.ColbyConsulting.com

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Gustav Brock
Sent: Tuesday, March 02, 2004 9:33 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] word automation not printing


Hi John

You may choose to print the document in the background:

<code>

Function WordDocPrint( _
  ByVal strFilename As String, _
  Optional ByVal booPrintBackGround As Boolean = False) _
  As Boolean

' Print Word document from within Access.
' 2000-05-27. Gustav Brock. Cactus Data ApS.
' 2000-09-10. Modified with option for background printing.

' Example: ? WordDocPrint("C:\Programmer\Microsoft Office
97\Office\Eksempler\produkter.doc")

  Dim appWord     As Word.Application
  Dim booSuccess  As Boolean

  Set appWord = New Word.Application
  Debug.Print "- activated"

  With appWord
    If Len(Dir(strFilename)) > 0 Then
      ' Open document strFilename read-only.
      .Documents.Open strFilename, , True
      Debug.Print "- opened"
      .ActiveDocument.PrintOut booPrintBackGround
      While .BackgroundPrintingStatus > 0
        Debug.Print "- printing"
        DoEvents
      Wend
      Debug.Print "- printed"
      .ActiveDocument.Close
      Debug.Print "- closed"
      booSuccess = True
    End If
    .Quit
    Debug.Print "- quit"
  End With

  Set appWord = Nothing

  WordDocPrint = booSuccess

End Function

</code>

/gustav


> I am using the following code to print an existing document using word
> automation.  If I leave out the msgbox statement the document doesn't
print.
> It's almost as if the close happens before the print manages to get the
> document out of word and into the print queue.  Has anyone seen this?  Any
> suggestions?  The "Press any key" solution is unprofessional to say the
> least.

> Function PrintWordDoc(strFilePath As String, strFileName As String, intCnt
> As Integer) As Boolean
> On Error GoTo Err_PrintWordDoc
>     Dim AppWord As Word.Application
>     Dim lDoc As Word.Document
>     Set AppWord = CreateObject("Word.Application")
>     With AppWord
>         .Visible = True
>         .Documents.Open (strFilePath & strFileName)
>         Set lDoc = .Documents(strFileName)
>         lDoc.PrintOut , , , , , , , intCnt

>         msgbox "Press any key to continue"

>         .Quit savechanges:=False
>     End With
>     PrintWordDoc = True
> Exit_PrintWordDoc:
> On Error Resume Next
>     Set lDoc = Nothing
>     Set AppWord = Nothing
> Exit Function
> Err_PrintWordDoc:
>         MsgBox Err.Description, , "Error in Sub basMailMerge.PrintWordDoc"
>         Resume Exit_PrintWordDoc
>     Resume 0    '.FOR TROUBLESHOOTING
> End Function

--
_______________________________________________
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