Save mail merge letters with a filename in a specific location Hel

J

Jeanne Moos

This is my day for many, many questions. Sorry for bothering you.

Again we have an SQL database which is linked to Word. We can perform simple
form letter merges. My form letter contains bookmarks that get replaced with
information from the SQL database.

Some of the bookmarks on the form include:
<appno> <employeename> <title>
There's a lot more but I won't list everything.

So when I run my mail merge, one letter is opened up on my desktop for each
application no.

I want to prevent word document from opening up on my desktop.
Instead I want to save each letter with the following
filename: <appno>hypen <employeename> to a my C:\temp folder.
Plus I want to turn on track changes in the save file.

I haven't got a clue how to get started.

Help!!!!!!

Thank You for your help.
 
D

Doug Robbins

If you want each file to be named based on one of the fields in the data
source,
here's a method that I have used that involves creating a separate
catalog type mailmerge maindocument which creates a word document containing
a table in each row of which would be your data from the database that you
want to use as the filename.

You first execute that mailmerge, then save that file and close it. Then
execute the mailmerge that you want to create the separate files from and
with the
result of that on the screen, run a macro containing the following code
and when the File open dialog appears, select the file containing the table
created by the first mailmerge

' Throw Away Macro created by Doug Robbins
'
Dim Source As Document, oblist As Document, DocName As Range, DocumentName
As String
Dim i As Long, doctext As Range, target As Document
Set Source = ActiveDocument
With Dialogs(wdDialogFileOpen)
.Show
End With
Set oblist = ActiveDocument
Counter = 1
For i = 1 To oblist.Tables(1).Rows.Count
Set DocName = oblist.Tables(1).Cell(i, 1).Range
DocName.End = DocName.End - 1

'Change the path in the following command to suit where you want to save
the documents.
DocumentName = "I:\WorkArea\Documentum\" & DocName.Text
Set doctext = Source.Sections(i).Range
doctext.End = doctext.End - 1
Set target = Documents.Add
target.Range.FormattedText = doctext
target.SaveAs FileName:=DocumentName
target.Close
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
 
J

Jeanne Moos

FYI: I cannot use the catalog merge because it's not available through the
database we use. The SQL database is linked to word. So when the user selects
the form. The form displays and prints. We only have access to the simple
form letter merges. Basically I'm trying to change the behavior of the form
letter. In order to re-create a catalog merge in our SQL database I use this
code which was provided by Peter Jamieson. The merge runs but then the macro
removes the page breaks.
Sub RemoveSectionBreaks()
With ActiveDocument.Content
.Find.ClearFormatting
Do While .Find.Execute(FindText:="^b", Forward:=True, _
Format:=False) = True
.Delete Unit:=wdCharacter, Count:=1
Loop
End With
End Sub

I need to:
1. I want to prevent word document from opening up on my desktop. ( because
sometimes I have a lot of letters)
2. I want to save each letter with the following> filename: <appno>hypen
<employeename> to a my C:\temp folder.
3. Plus I want to turn on track changes in the saved file.

Is this possible? Please help.

Thanks
 

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