Mitsules, Mark S. (Newport News)
Mark.Mitsules at ngc.com
Tue Mar 2 07:41:10 CST 2004
Gustav set me on the right track a few years ago with this problem. ...and
I quote "Printing is VERY much faster if background printing is off." See
example courtesy of Gustav:)
Mark
Function PrintDoc(ByVal strFileName As String) As Boolean
' Print Word document from within Access.
' 2000-05-27. Gustav Brock. Cactus Data ApS.
' Example: ? WordDocPrint("C:\Temp\Products.doc")
Dim appWord As Word.Application
Dim booPrintBackground As Boolean
Dim WordDocPrint As Boolean
Set appWord = New Word.Application
'Debug.Print "- activated"
With appWord
.Documents.Open strFileName
'Debug.Print "- opened"
' Store background printing option.
booPrintBackground = .Options.PrintBackground
If booPrintBackground = True Then
' Printing is VERY much faster if background printing is off.
.Options.PrintBackground = False
End If
.ActiveDocument.PrintOut
' Not needed if background printing option is off.
While .BackgroundPrintingStatus > 0
'Debug.Print "- printing"
StatusBar = .BackgroundPrintingStatus & " print jobs are queued up"
DoEvents
Wend
' -----------------------------------------------
'Debug.Print "- printed"
' Restore background printing option.
If booPrintBackground = True Then
.Options.PrintBackground = True
End If
.ActiveDocument.Close
'Debug.Print "- closed"
.Quit
'Debug.Print "- quit"
End With
Set appWord = Nothing
WordDocPrint = True
End Function
-----Original Message-----
From: John W. Colby [mailto:jwcolby at colbyconsulting.com]
Sent: Tuesday, March 02, 2004 8:33 AM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] word automation not printing
A DoEvents thingie? Getting kinda technical aren't you?
;-)
John W. Colby
www.ColbyConsulting.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of S D
Sent: Tuesday, March 02, 2004 8:21 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] word automation not printing
you could try a timer event...wait a couple of seconds before quiting...
Isn't it possible to use a doevents thingy?
HTH
Sander
"John W. Colby" <jwcolby at colbyconsulting.com> wrote:
Folks,
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
John W. Colby
www.ColbyConsulting.com
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
---------------------------------
Do you Yahoo!?
Yahoo! Search - Find what youre looking for faster.
--
_______________________________________________
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