Mail Merging into the current or target document

V

Viperpurpleuk

Hey Peeps,

I'm currently creating a directory using a main document with inserted
sub-documents. Each sub-document has a mail merge set up with an access
query as the data source. I need to do one of the following to get the main
document to show the merged data.

1) Enable the mail merge sub-document to merge into a bookmarked area of the
main document
2) Enable the mail merge sub-document to merge into itself and so appear in
the main document with the merged data
3) Enable the mail merge sub-document to merge into a target document
(replacing any existing) that i can then link from the main document.

I think i've covered all the bases, if you have another answer i'm very open
to any suggestion.

Thanks in advance

Adam (Merry Xmas)
 
D

Doug Robbins - Word MVP

Sounds very much like a multiple items per condition mailmerge for which
doing it all in Access with a report is really the best option.

Or, see the "Multiple items per condition" item under the "Special merges"
section of fellow MVP CIndy Meister's website at
http://homepage.swissonline.ch/cindymeister/MergFram.htm

Or, do some further development of the following:

' Macro by Doug Robbins to create multiple items per condition from a
directory type mailmerge

Dim source As Document, target As Document, scat As Range, tcat As Range
Dim data As Range, stab As Table, ttab As Table
Dim i As Long, j As Long, k As Long, n As Long
Set source = ActiveDocument
Set target = Documents.Add
Set stab = source.Tables(1)
k = stab.Columns.Count
Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)
Set scat = stab.Cell(1, 1).Range
scat.End = scat.End - 1
ttab.Cell(1, 1).Range = scat
j = ttab.Rows.Count
For i = 1 To stab.Rows.Count
Set tcat = ttab.Cell(j, 1).Range
tcat.End = tcat.End - 1
Set scat = stab.Cell(i, 1).Range
scat.End = scat.End - 1
If scat <> tcat Then
ttab.Rows.Add
j = ttab.Rows.Count
ttab.Cell(j, 1).Range = scat
ttab.Rows.Add
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End - 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
Else
ttab.Rows.Add
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End - 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
End If
Next i




--
Please post any further questions or followup to the newsgroups for the
benefit of others who may be interested. Unsolicited questions forwarded
directly to me will only be answered on a paid consulting basis.

Hope this helps
Doug Robbins - Word MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top