Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Multiple items per condition
Is there a way I can mail merge asking one field a question to get the merge
result from another field. example: field names: Set, Set 1, Set 2, Set 3, Set 4 The set field either has 1, 2, 3, or 4 and depending on that number gets the information from that Set 1, Set 2, Set 3, or Set 4 field. for a final result of Set = 2 and merges the information from the Set 2 Field, no other field I hope you understand what I am asking. Thank you for your time Lori |
#2
|
|||
|
|||
Is this really multiple items per condition, or is there just one record in
any one of Sets 1, 2, 3, or 4 for each record in Set. If there is only the one record, then you can use an If...then...Else construction: { IF { MERGEFIELD Set } = 1 { MERGEFIELD Set1 } { IF { MERGEFIELD Set } = 2 { MERGEFIELD Set2 } { IF { MERGEFIELD Set } = 3 { MERGEFIELD Set3 } { MERGEFIELD Set4 }}}} If on the other hand you really are talking about merging multiple items per condition, 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 -- 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 "Zanari" wrote in message ... Is there a way I can mail merge asking one field a question to get the merge result from another field. example: field names: Set, Set 1, Set 2, Set 3, Set 4 The set field either has 1, 2, 3, or 4 and depending on that number gets the information from that Set 1, Set 2, Set 3, or Set 4 field. for a final result of Set = 2 and merges the information from the Set 2 Field, no other field I hope you understand what I am asking. Thank you for your time Lori |
#3
|
|||
|
|||
Hello Doug and thank you for your reply. As I was writing it, I was afraid I
wouldn't explain it correctly. Yes, you are correct. Within one record. I was having a little difficulty explaining properly what I wanted to do. "Doug Robbins" wrote: Is this really multiple items per condition, or is there just one record in any one of Sets 1, 2, 3, or 4 for each record in Set. I tried to do what you have below and it just wasn't working for me. I will try it again. Thank you for your help. If there is only the one record, then you can use an If...then...Else construction: { IF { MERGEFIELD Set } = 1 { MERGEFIELD Set1 } { IF { MERGEFIELD Set } = 2 { MERGEFIELD Set2 } { IF { MERGEFIELD Set } = 3 { MERGEFIELD Set3 } { MERGEFIELD Set4 }}}} If on the other hand you really are talking about merging multiple items per condition, 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 -- 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 "Zanari" wrote in message ... Is there a way I can mail merge asking one field a question to get the merge result from another field. example: field names: Set, Set 1, Set 2, Set 3, Set 4 The set field either has 1, 2, 3, or 4 and depending on that number gets the information from that Set 1, Set 2, Set 3, or Set 4 field. for a final result of Set = 2 and merges the information from the Set 2 Field, no other field I hope you understand what I am asking. Thank you for your time Lori |
#4
|
|||
|
|||
Hi Doug ~
I cannot imagine what I am doing incorrectly but it is just not working...even using your code and altering it to my database. I have been trying it all morning. I will just have to do it in a query manner and then combine the two merges once printed. "Doug Robbins" wrote: Is this really multiple items per condition, or is there just one record in any one of Sets 1, 2, 3, or 4 for each record in Set. If there is only the one record, then you can use an If...then...Else construction: { IF { MERGEFIELD Set } = 1 { MERGEFIELD Set1 } { IF { MERGEFIELD Set } = 2 { MERGEFIELD Set2 } { IF { MERGEFIELD Set } = 3 { MERGEFIELD Set3 } { MERGEFIELD Set4 }}}} If on the other hand you really are talking about merging multiple items per condition, 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 -- 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 "Zanari" wrote in message ... Is there a way I can mail merge asking one field a question to get the merge result from another field. example: field names: Set, Set 1, Set 2, Set 3, Set 4 The set field either has 1, 2, 3, or 4 and depending on that number gets the information from that Set 1, Set 2, Set 3, or Set 4 field. for a final result of Set = 2 and merges the information from the Set 2 Field, no other field I hope you understand what I am asking. Thank you for your time Lori |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
text with multiple fonts inserted into document with multiple columns? | New Users | |||
How does one copy multiple items to a drop-down list? | Microsoft Word Help | |||
Multiple items per condition | Mailmerge | |||
Really New Newbie - Multiple Items - Question | Mailmerge | |||
Multiple docs open multiple words | New Users |