Reply
 
Thread Tools Display Modes
  #1   Report Post  
jdb
 
Posts: n/a
Default Merge Multiple Records into One Document

Hello,

I am creating an end-of-year mailing to this year's donors for my nonprofit
group. The purpose of the mailing is to confirm their total giving for their
tax records.

I would like each donor to receive one letter, with the letter listing the
date, amount, pupose, etc. of their donation(s).

Here's my quandry: my data source is an excel file where each row is a
separate donation. Some donors have given multiple times over the year, I
want their letter to list all their donations (I could just send them a
separate letter for each donation, but that would be inefficient and not as
cool).

So, how do I set up the merge so that each donor gets only one letter, and
each letter lists all of that particular donor's contributions?

Thanks in advance for your assistance.

--
Joe
  #2   Report Post  
Doug Robbins
 
Posts: n/a
Default

Word does not really have the ability to perform a "multiple items per
condition (=key field)" mailmerge.

See the "Multiple items per condition" item under the "Special merges"
section of fellow MVP Cindy Meister's website at

http://homepage.swissonline.ch/cindy...r/MergFram.htm

Or, if you create a Catalog (on in Word XP and later, it's called Directory)
type mailmerge main document with the mergefields in the cells of a one row
table in the mailmerge main document with the keyfield in the first cell in
the row and then execute that merge to a new document and then run the
following macro, it will create separate tables with the records for each
key field in them. With a bit of further development, you may be able to
get it to do what you want.

' Macro to create multiple items per condition in separate tables 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.Cell(j, 1).Range.Paragraphs(1).PageBreakBefore = True
ttab.Rows.Add
ttab.Cell(j + 1, 1).Range.Paragraphs(1).PageBreakBefore = False
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 respond to the Newsgroup for the benefit of others who may be
interested. Questions sent directly to me will only be answered on a paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
"jdb" wrote in message
...
Hello,

I am creating an end-of-year mailing to this year's donors for my
nonprofit
group. The purpose of the mailing is to confirm their total giving for
their
tax records.

I would like each donor to receive one letter, with the letter listing the
date, amount, pupose, etc. of their donation(s).

Here's my quandry: my data source is an excel file where each row is a
separate donation. Some donors have given multiple times over the year, I
want their letter to list all their donations (I could just send them a
separate letter for each donation, but that would be inefficient and not
as
cool).

So, how do I set up the merge so that each donor gets only one letter, and
each letter lists all of that particular donor's contributions?

Thanks in advance for your assistance.

--
Joe



  #3   Report Post  
jdb
 
Posts: n/a
Default

Thanks for your response, Doug. I tried your solution, but got a syntax
error in the macro:

Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,

I know nothing about writing macros, so would appreciate any further help.


"Doug Robbins" wrote:

Word does not really have the ability to perform a "multiple items per
condition (=key field)" mailmerge.

See the "Multiple items per condition" item under the "Special merges"
section of fellow MVP Cindy Meister's website at

http://homepage.swissonline.ch/cindy...r/MergFram.htm

Or, if you create a Catalog (on in Word XP and later, it's called Directory)
type mailmerge main document with the mergefields in the cells of a one row
table in the mailmerge main document with the keyfield in the first cell in
the row and then execute that merge to a new document and then run the
following macro, it will create separate tables with the records for each
key field in them. With a bit of further development, you may be able to
get it to do what you want.

' Macro to create multiple items per condition in separate tables 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.Cell(j, 1).Range.Paragraphs(1).PageBreakBefore = True
ttab.Rows.Add
ttab.Cell(j + 1, 1).Range.Paragraphs(1).PageBreakBefore = False
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 respond to the Newsgroup for the benefit of others who may be
interested. Questions sent directly to me will only be answered on a paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
"jdb" wrote in message
...
Hello,

I am creating an end-of-year mailing to this year's donors for my
nonprofit
group. The purpose of the mailing is to confirm their total giving for
their
tax records.

I would like each donor to receive one letter, with the letter listing the
date, amount, pupose, etc. of their donation(s).

Here's my quandry: my data source is an excel file where each row is a
separate donation. Some donors have given multiple times over the year, I
want their letter to list all their donations (I could just send them a
separate letter for each donation, but that would be inefficient and not
as
cool).

So, how do I set up the merge so that each donor gets only one letter, and
each letter lists all of that particular donor's contributions?

Thanks in advance for your assistance.

--
Joe




  #4   Report Post  
Doug Robbins
 
Posts: n/a
Default

The mail program has inserted a line break in that row. Place the cursor at
the beginning of the next line of code and press the backspace key to rejoin
the lines and restore it as all one command.

--
Please respond to the Newsgroup for the benefit of others who may be
interested. Questions sent directly to me will only be answered on a paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
"jdb" wrote in message
...
Thanks for your response, Doug. I tried your solution, but got a syntax
error in the macro:

Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,

I know nothing about writing macros, so would appreciate any further help.


"Doug Robbins" wrote:

Word does not really have the ability to perform a "multiple items per
condition (=key field)" mailmerge.

See the "Multiple items per condition" item under the "Special merges"
section of fellow MVP Cindy Meister's website at

http://homepage.swissonline.ch/cindy...r/MergFram.htm

Or, if you create a Catalog (on in Word XP and later, it's called
Directory)
type mailmerge main document with the mergefields in the cells of a one
row
table in the mailmerge main document with the keyfield in the first cell
in
the row and then execute that merge to a new document and then run the
following macro, it will create separate tables with the records for each
key field in them. With a bit of further development, you may be able to
get it to do what you want.

' Macro to create multiple items per condition in separate tables 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.Cell(j, 1).Range.Paragraphs(1).PageBreakBefore = True
ttab.Rows.Add
ttab.Cell(j + 1, 1).Range.Paragraphs(1).PageBreakBefore = False
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 respond to the Newsgroup for the benefit of others who may be
interested. Questions sent directly to me will only be answered on a
paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
"jdb" wrote in message
...
Hello,

I am creating an end-of-year mailing to this year's donors for my
nonprofit
group. The purpose of the mailing is to confirm their total giving for
their
tax records.

I would like each donor to receive one letter, with the letter listing
the
date, amount, pupose, etc. of their donation(s).

Here's my quandry: my data source is an excel file where each row is a
separate donation. Some donors have given multiple times over the
year, I
want their letter to list all their donations (I could just send them a
separate letter for each donation, but that would be inefficient and
not
as
cool).

So, how do I set up the merge so that each donor gets only one letter,
and
each letter lists all of that particular donor's contributions?

Thanks in advance for your assistance.

--
Joe






Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I merge an excel document Pat McGlamery Tables 1 December 10th 04 04:00 AM
Merge data into one document from several tables in Access. Professor Wise Mailmerge 1 December 2nd 04 11:40 PM
How do I mail merge when only merge document is shown in tools? DaveAS Microsoft Word Help 2 December 1st 04 04:45 PM
Endnote references in a document and in multiple appendices Wallace Microsoft Word Help 1 November 30th 04 03:11 PM
Need multiple Ifs in Merge Fields Pat Cortez Mailmerge 1 November 30th 04 02:11 AM


All times are GMT +1. The time now is 02:27 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"