Re: Group multiple items for a single condition - in a table?



Word does not really have the ability to do that out of the box:

See the "Group Multiple items for a single condition" item on fellow MVP
Cindy Meister's website at

http://homepage.swissonline.ch/cindymeister/mergfaq1.htm#DBPic


Or take a look at the following Knowledge Base Article

http://support.microsoft.com/default.aspx?scid=kb;en-us;211303






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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"Beth Obenshain" <BethObenshain@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:25CE9A88-8FE5-42F4-993B-F01FAE3C0ACD@xxxxxxxxxxxxxxxx
In my excel data source, each record represents a program. Each program
has a
*different number* of variables. Each variable has a name, description,
and
default value. I would like to present the information on variables in a
table with three columns (name, description, and default value).

Can this be done? Is there a way to create table rows in a merge?

I am using the following Knowledge Base article:
http://support.microsoft.com/kb/294686/en-us

Thanks.


.



Relevant Pages

  • Re: Word 2003 Mail Merge to a Form
    ... See the "Group Multiple items for a single condition" item on fellow MVP ... Cindy Meister's website at: ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Force page break
    ... See the "Group Multiple items for a single condition" item on fellow MVP ... Dim source As Document, target As Document, scat As Range, tcat As Range ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Merging 2 or more records into 1 page
    ... See the "Group Multiple items for a single condition" item on fellow MVP ... > record to display. ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Employee phone list in directory tool under mailmerge
    ... See the "Group Multiple items for a single condition" item on fellow MVP ... type mailmerge main document with the mergefields in the cells of a one row ... Dim source As Document, target As Document, scat As Range, tcat As Range ...
    (microsoft.public.word.mailmerge.fields)
  • Re: merge multiple records for multiple clients?
    ... See the "Group Multiple items for a single condition" item on fellow MVP ... Doug Robbins - Word MVP ...
    (microsoft.public.word.mailmerge.fields)