connie.kamrowski at agric.nsw.gov.au
connie.kamrowski at agric.nsw.gov.au
Thu Apr 7 01:25:50 CDT 2005
Hi all, Now trying to fix a 2nd database which is not working, written in Access97. Problem is there is a Form letter function (code below) when I call this function it opens word but no document appears in the window. The popup to ask if it printed OK appears but the document is not visible to the user and no printing occurs. If I comment out the line '.Documents(strMainDocument).Close SaveChanges:=wdDoNotSaveChanges I get a program monitor error but the document is visible. Any ideas? Connie Kamrowski Analyst/Programmer Information Technology NSW Department of Primary Industries Orange Public Sub Export_Word() Dim rsA0001 As Recordset Dim objWord As Word.Application Dim strMainDocument As String Dim dbExportWord As Database Dim rsExportWord As Recordset Dim booPrintBackground As Boolean gfLetterPrintedOK = False 'Value will be set to true if the user verifies that the letter printed ' Resume to the next line following the error. On Error Resume Next ' Attempt to reference Word which is already running. Set objWord = GetObject(, "Word.Application") If Err = 429 Then Set objWord = New Word.Application Err = 0 End If ' If true, Word is not running. If objWord Is Nothing Then ' Create a new instance of the Word application. Set objWord = New Word.Application ' If true, MS Word is not installed. If objWord Is Nothing Then MsgBox "MS Word is not installed on your computer" GoTo ExitRoutine End If 'objWord Is Nothing End If 'objWord Is Nothing 'Check to Ensure the temporary RTF file has been deleted, if not, Delete it gstrWordDirectory = Dir$(strTempRTFFile, vbNormal) If gstrWordDirectory <> "" Then On Error GoTo Failure 'Displays 'File Access Error (#71) if a form letter is already open Kill strTempRTFFile On Error Resume Next End If 'gstrWordDirectory <> "" If gstrAccessWordQuery = "" Then 'Print Blank Form objWord.Documents.Add (gstrTemplate) Else DoCmd.OutputTo acOutputQuery, gstrAccessWordQuery, _ acFormatRTF, strTempRTFFile, False objWord.Documents.Add (gstrTemplate) 'Template document '*.dot' strMainDocument = objWord.ActiveDocument.Name 'Sets the name of the 'Main Document' (template document) 'so that it can be closed later With objWord.ActiveDocument.MailMerge .SuppressBlankLines = True .ViewMailMergeFieldCodes = False .Destination = wdSendToNewDocument .Execute End With With objWord 'Close Main Document .Documents(strMainDocument).Activate .Documents(strMainDocument).Close SaveChanges:=wdDoNotSaveChanges ' Store background printing option. End With objWord.Activate ' Activates Word objWord.Visible = True ' Show Word to the user. objWord.WindowState = wdWindowStateMaximize Set objWord = Nothing ' Release the object variable. On Error GoTo Failure If MsgBox("Did your letter print correctly?", vbYesNo, "Form Letters") = vbYes Then gfLetterPrintedOK = True Set dbExportWord = CurrentDb() Set rsExportWord = dbExportWord.OpenRecordset("tblLettersSent", dbOpenDynaset, dbFailOnError) With rsExportWord .AddNew !LTRLPBNumber = gstrRLPBNumber !LTPropertyID = glngMainPropertyID !LTFormLetterID = gstrFormLetterID !LTComment = gstrFormLetterComment !LTDatePrinted = Date !LTTimePrinted = Time .Update End With Select Case getgstrFormLetterID() Case "A0001" dbExportWord.Execute "A000104", dbFailOnError End Select End If 'MsgBox("Did your letter print correctly?"... End If 'gstrAccessWordQuery = "" ExitRoutine: On Error Resume Next rsExportWord.Close Set rsExportWord = Nothing dbExportWord.Close Set dbExportWord = Nothing rsA0001.Close Set rsA0001 = Nothing Set objWord = Nothing ' Release the object variable. Exit Sub Failure: Call ErrorHandler(strProcedureName:="Export_Word", lngErrorNumber:=Err.Number, _ strErrorDescription:=Err.Description, _ strErrorSource:=Err.Source) Resume ExitRoutine End Sub This message is intended for the addressee named and may contain confidential information. If you are not the intended recipient or received it in error, please delete the message and notify sender. Views expressed are those of the individual sender and are not necessarily the views of their organisation.