I've built an access database that populates a table and then opens several Word mail merge templates, generates merged documents, and saves them. The relevant portion of the code gets or creates a Word application object, opens a merge template as a document object, runs the mail merge, and closes the template. It then looks for the merge output, makes that the active document, saves as (following a filenaming schema), and closes it. It then quits Word if no other documents are open, and releases the document and application objects.
Following an MS update that installed last week, this all works great once, but on the second runthrough, the generated merge document stops responding after it is made the active document. I've hit the Google hard to see if I can find an explanation or workaround, with no luck. Anyone have any ideas?
Relevant code:
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0
Set objDoc = objWord.Documents.Open(templateName)
objWord.Visible = True
objWord.ActiveWindow.View.Type = wdNormalView
objDoc.MailMerge.OpenDataSource Name:= _
tempRoot & "Merge_Output.txt", ConfirmConversions:=False, ReadOnly _
:=True, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
"", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="", SQLStatement:="", SQLStatement1:="", SubType:= _
wdMergeSubTypeOther
objDoc.MailMerge.ViewMailMergeFieldCodes = False
objDoc.MailMerge.Execute
objDoc.Close False
For Each openDoc In objWord.Documents
strOpenDoc = openDoc.Name
If strOpenDoc Like "Form Letters*" Then
openDoc.Activate
Exit For
End If
Next openDoc
objWord.ActiveDocument.Content.NoProofing = False
objWord.ActiveDocument.SaveAs TargetDir & "\" & DocBase & "_Designation" '<=====This is where the document stops responding
objWord.ActiveDocument.Close False
If objWord.Documents.Count = 0 Then objWord.Application.Quit
Set objDoc = Nothing
Set objWord = Nothing