Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / April 2005

Tip: Looking for answers? Try searching our database.

splitting large merge document into smaller files (asked before, but I think this is different)

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Rua - 21 Apr 2005 16:48 GMT
Hi,

I have created a large (800 plus page) merge document from an access
database. The document has a single identifying code where there are
up to 5 assosicated rows within the database. The identifying code is
deliberately not repeated in the resultant merged document.
What I would like to do is to split the merged doc into unique smaller
docs based on the identifier. I have tried to insert bookmarks in the
merge code but they do not appear to be carried into the resultant
merge.

I've attached the code used in the merge below, can anyone help me out
here, please?

Thanks

Phil

{if {mergeseq} = "1" "{mergefield identifier}" ""}
{set place1 {mergefield identifier}}
{if {place2}<>{place1}"code_{mergefield identifier} - - I inserted
this to use as a reference
   
           Salutation and non referenced content of merge document

{set place2 {mergefield identifier}}
Doug Robbins - 22 Apr 2005 15:18 GMT
The macro in the following may be of interest to you

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/cindymeister/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

Signature

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

> Hi,
>
[quoted text clipped - 22 lines]
>
> {set place2 {mergefield identifier}}
rua - 22 Apr 2005 18:17 GMT
Thanks Doug,

I'll give it a try and let you know how I get on.

Phil
> The macro in the following may be of interest to you
>
[quoted text clipped - 83 lines]
> >
> > {set place2 {mergefield identifier}}
rua - 25 Apr 2005 20:51 GMT
Thanks Doug

I was able to use a different way to access the data which allowed me to
create a simpler merge.

Thanks again
> The macro in the following may be of interest to you
>
[quoted text clipped - 83 lines]
> >
> > {set place2 {mergefield identifier}}
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.