[AccessD] Word closes before it shows the user the document

MarkH lists at theopg.com
Sun Apr 10 08:40:10 CDT 2005


Try not releasing the object maybe

mark

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MartyConnelly
Sent: 09 April 2005 18:34
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Word closes before it shows the user the document


Just maybe this is it, part way through your code you suddenly

    Set objWord = Nothing 


                objWord.Activate    ' Activates Word
                objWord.Visible = True    ' Show Word to the user.
                objWord.WindowState = wdWindowStateMaximize
                Set objWord = Nothing    ' Release the object variable.



connie.kamrowski at agric.nsw.gov.au wrote:

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

-- 
Marty Connelly
Victoria, B.C.
Canada



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

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.859 / Virus Database: 585 - Release Date: 14/02/2005
 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.859 / Virus Database: 585 - Release Date: 14/02/2005
 




More information about the AccessD mailing list