Dynamically setting the path to the data source

A

Andrew Duncan

Does anyone know of a way to dynamically set the path to the data source for
a Word 2003 mail merge letter? For example if you had 50 letters all
pointing to a data source at:

C:\datasource.csv

is there an easy way to change it to find the datasource at:

D:\datasource.csv

without having to change it for each of the 50 letters?

Thanks,
Andrew
 
D

Doug Robbins - Word MVP

Using a modification of the code in the article "Find & ReplaceAll on a
batch of documents in the same folder" at:

http://www.word.mvps.org/FAQs/MacrosVBA/BatchFR.htm

you could attach the new data source to each of the mail merge main letters.


--
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
 
M

Microsoft Newsserver

Thanks for your reply Doug. I've been reading that article which looks
promising, however as I understand it the Find&Replace dialog lets you
replace text in the document. I can't see how to use the Find&Replace to
replace the stored location of the data source - the only way I know how to
change this is to either use the Mail Merge Wizard at step 3 or click "Open
Data Source" on the Mail Merge toolbar.

If there's another way to set this I'd love to know.

Many thanks,
Andrew
 
G

Graham Mayor

It might be simpler to move the data file to the same folder as the merge
document. It should find it there no matter where it was added from.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
D

Doug Robbins - Word MVP

I wasn't suggesting using Find & Replace. The purpose for pointing you to
that article was for the way in which it deals with opening each of the
files in a folder, then performing an operation on the file before saving
and closing it. You would need to replace the code in the article that does
the Find & Replace with the appropriate code for attaching the new
datasource to each file.

--
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
 
M

Microsoft Newsserver

Hi Doug,

Thanks again - do you know of any reference for the details for appropriate
code for updating the location of the datasource?

Andrew
 
D

Doug Robbins - Word MVP

Sub UpdateDataSource()

Dim MyPath As String
Dim MyName As String
Dim MyDoc As Document
'let user select a path
With Dialogs(wdDialogCopyFile)
If .Display() <> -1 Then Exit Sub
MyPath = .Directory
End With

'strip quotation marks from path

If Len(MyPath) = 0 Then Exit Sub

If Asc(MyPath) = 34 Then
MyPath = Mid$(MyPath, 2, Len(MyPath) - 2) End If

'Open each file from the selected path and 'attach the mailmerge data source
to it.

MyName = Dir$(MyPath & "*.doc")
Do While MyName <> ""
Set MyDoc = Documents.Open(MyPath & MyName)
With MyDoc
.MailMerge.OpenDataSource "D:\datasource.csv"
.Save
.Close
End With
MyName = Dir
Loop

End Sub

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

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