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 / Mailmerge and Fax / November 2005

Tip: Looking for answers? Try searching our database.

Code in a mailmerge template

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Dixie - 25 Nov 2005 02:52 GMT
When I connect a mailmerge template to a text file via the Get Data button
on the MailMerge Helper in Word 2000, is there anywhere in the template that
I can later view that path and file name where the template looks for its
merge data.  Where in the mailmerge template is the information stored?

dixie
Doug Robbins - Word MVP - 25 Nov 2005 05:14 GMT
Run a macro containing the following code:

MsgBox ActiveDocument.MailMerge.DataSource.Name

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

> When I connect a mailmerge template to a text file via the Get Data button
> on the MailMerge Helper in Word 2000, is there anywhere in the template
[quoted text clipped - 3 lines]
>
> dixie
Dixie - 25 Nov 2005 05:43 GMT
I was looking for a way to change the data source in the mailmerge template
without navigating to the actual text file containing the data.  There is
only one letter difference between them and there are over 120 mailmerge
templates.  I have done one lot of them where I changed a C:\ to T:\ in a
path and it took me just on two hours, including the sleep/trance time from
the repetetiveness of the task.  I have to do a quite a few of these from
time to time and I was hoping I could find the path in some vba in the
mailmerge template and just change the letter.  No such luck I guess.  The
code you gave did report the path, but is not useful in changing it.

Thanks anyway.

dixie

> Run a macro containing the following code:
>
[quoted text clipped - 8 lines]
>>
>> dixie
Charles Kenyon - 25 Nov 2005 06:35 GMT
What follows is code I use to connect to a data source. Perhaps it will give
you a starting place.

Function WorkGroupPath() As String
'   Written by Charles Kenyon
'   February 28, 2003
'
'   Used by templates menus to set location of templates.
'   Returns workgroup tempates path with "\" at the end.
'
'   This is needed because if the folder is a network drive rather
'   than a folder, it will have the "\" already. If it is a folder,
'   it will not have the backslash. This function gives a string
'   with the backslash in either case.
'
   WorkGroupPath =
Application.Options.DefaultFilePath(wdWorkgroupTemplatesPath)
   If Right(WorkGroupPath, 1) <> "\" Then
       WorkGroupPath = WorkGroupPath & "\"
   End If
End Function

Sub AttachClients()
'   Written by Charles Kenyon
'   19 April 2005
'
'   Requires WorkGroupPath function
'
'   Makes activedocument a mailmerge (letter) document and
'   attaches Clients_Merge.xls from Parts folder of Workgroup Templates
folder.
'
   On Error Resume Next
'
'   Name of file
   Dim strFileName As String
   Dim strProvider As String
   strFileName = WorkGroupPath & "Parts\Merge Data\Clients_Merge.xls"
'
'   Attach Merge list
'    ActiveDocument.MailMerge.OpenDataSource _
       Name:=strFileName, _
       ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
       AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="",
_
       WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False,
_
       Format:=wdOpenFormatAuto, Connection:= _
       "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data
Source=C:\Documents and Settings\All Users\Documents\MS Office User System
Files\Shared Templates\Parts\Merge Data\Clients_Merge.xls;Mode=Read;Extended
Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:" _
       , SQLStatement:="SELECT * FROM `Clients$`", SQLStatement1:="",
SubType:= _
       wdMergeSubTypeAccess
'    ActiveDocument.MailMerge.OpenDataSource _
       Name:=strFileName, _
       ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
       AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="",
_
       WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False,
_
       Format:=wdOpenFormatAuto, _
       Connection:= _
       "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data
Source=strFileName;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet
OLEDB:" _
       , SQLStatement:="SELECT * FROM `Clients$`", SQLStatement1:="",
SubType:= _
       wdMergeSubTypeAccess
'   Following should be shorter version of above (somewhat)
   ActiveDocument.MailMerge.OpenDataSource strFileName, , , False, _
       True, False, "", "", False, "", "",
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data
Source=strFileName;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet
OLEDB:" _
       , "SELECT * FROM `Clients$`", "", , wdMergeSubTypeAccess
'
'   Show merge data
   ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False
'
End Sub

Signature

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://word.mvps.org/FAQs/ which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

>I was looking for a way to change the data source in the mailmerge template
>without navigating to the actual text file containing the data.  There is
[quoted text clipped - 23 lines]
>>>
>>> dixie
 
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.