D
Debbie
I've never written VBA code of my own (only changed things
I've recorded). I recorded a macro to do a mail merge but
I need the macro to save my records to multiple files for
each Company. I tried using a MailMergeBeforeRecordMerge
Event to change the name of the output file but I keep
getting an error that I need an "End Sub". I just do't
see the error.
Sub TestMerge()
Dim hld_agcy As String
Set DocName = "I:\Groups\Shared\letters\elg\Agency Vesting
Letters\Merged Files\vstltr_" & agency_hld & "_" & Date
ChangeFileOpenDirectory "I:\groups\shared\letters\elg\Agenc
y Vesting Letters"
Documents.Open FileName:="Master FullVesting
Letter.doc", ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False,
PasswordDocument:="", _
PasswordTemplate:="", Revert:=False,
WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto
ActiveDocument.MailMerge.OpenDataSource Name:= _
"J:\access\WordMerge\Letters.mdb",
ConfirmConversions:=False, ReadOnly:= _
False, LinkToSource:=True,
AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", WritePasswordDocument:="",
WritePasswordTemplate:= _
"", Revert:=False, Format:=wdOpenFormatAuto,
Connection:= _
"QUERY RetVstAgcySrt", SQLStatement:="SELECT *
FROM [RetVstAgcySrt]", _
SQLStatement1:="", SubType:=wdMergeSubTypeOther
With ActiveDocument.MailMerge
.Destination = DocName
.SuppressBlankLines = True
With .DataSource
Private Sub
MailMergeApp_MailMergeBeforeRecordMerge(ByVal
ActiveDocument As Document)
If mem_agcy <> hld_agcy _
Then hld_agcy = mem_agcy
End If
End Sub
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ChangeFileOpenDirectory _
"I:\Groups\Shared\letters\elg\Agency Vesting
Letters\"
ActiveDocument.SaveAs FileName:=DocName, _
FileFormat:=wdFormatDocument, LockComments:=False,
Password:="", _
AddToRecentFiles:=True, WritePassword:="",
ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False,
SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False
End Sub
I've recorded). I recorded a macro to do a mail merge but
I need the macro to save my records to multiple files for
each Company. I tried using a MailMergeBeforeRecordMerge
Event to change the name of the output file but I keep
getting an error that I need an "End Sub". I just do't
see the error.
Sub TestMerge()
Dim hld_agcy As String
Set DocName = "I:\Groups\Shared\letters\elg\Agency Vesting
Letters\Merged Files\vstltr_" & agency_hld & "_" & Date
ChangeFileOpenDirectory "I:\groups\shared\letters\elg\Agenc
y Vesting Letters"
Documents.Open FileName:="Master FullVesting
Letter.doc", ConfirmConversions:= _
False, ReadOnly:=False, AddToRecentFiles:=False,
PasswordDocument:="", _
PasswordTemplate:="", Revert:=False,
WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto
ActiveDocument.MailMerge.OpenDataSource Name:= _
"J:\access\WordMerge\Letters.mdb",
ConfirmConversions:=False, ReadOnly:= _
False, LinkToSource:=True,
AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", WritePasswordDocument:="",
WritePasswordTemplate:= _
"", Revert:=False, Format:=wdOpenFormatAuto,
Connection:= _
"QUERY RetVstAgcySrt", SQLStatement:="SELECT *
FROM [RetVstAgcySrt]", _
SQLStatement1:="", SubType:=wdMergeSubTypeOther
With ActiveDocument.MailMerge
.Destination = DocName
.SuppressBlankLines = True
With .DataSource
Private Sub
MailMergeApp_MailMergeBeforeRecordMerge(ByVal
ActiveDocument As Document)
If mem_agcy <> hld_agcy _
Then hld_agcy = mem_agcy
End If
End Sub
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ChangeFileOpenDirectory _
"I:\Groups\Shared\letters\elg\Agency Vesting
Letters\"
ActiveDocument.SaveAs FileName:=DocName, _
FileFormat:=wdFormatDocument, LockComments:=False,
Password:="", _
AddToRecentFiles:=True, WritePassword:="",
ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False,
SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False
End Sub