late binding

M

Michelle Hanan

I am running a macro in Office 2003 and need to run it in XP, so from what I
understand I need to uncheck the reference to word, since that is where the
merging is happening and then change the code to "late binding". My problem
is that looking at the code I can't figure out what to change. Here is the
beginning of the code:

Dim wdApp As Object
Dim myDoc As Word.Document
Set wdApp = CreateObject("Word.Application")
Set myDoc =
Word.Documents.Open("\\powervault2\home_pl\common\Referrals\Referal Agency -
Ecology.doc")
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
"\\powervault2\home_pl\common\Referrals\Referals.xls", _

Any suggestions?
 
M

Michelle Hanan

I changed some of the code as you recommended. I am now getting a syntax
error. I have seperated the part that is being highlighted as the error.Here
is the code:

Dim wdApp As Object
Dim myDoc As Object
Set wdApp = CreateObject("Word.Application")
Set myDoc =
wdApp.Documents.Open("\\powervault2\home_pl\common\Referrals\Referal
Agency - Ecology.doc")
With myDoc.MailMerge.MainDocumentType = wdFormLetters

The code below is where I am getting the syntax error.

With myDoc.MailMerge.OpenDataSource Name:= _
"\\powervault2\home_pl\common\Referrals\Referals.xls", _
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=\\powervault2\home_pl\common\Referrals\Referals.xls;Mode=Read;Extended
Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet
OLEDB:Registry Path="""";Jet OLEDB:Database Pa" _
, SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="",
SubType:= _
wdMergeSubTypeAccess
 
N

NickHK

Michelle,
Also with late binding you cannot use the declared constants/enums e.g.
wdFormLetters
You need to check the Help and/or Object Browser to find their actual
values, in this case 0.
Or declare it yourself:
Const wdFormLetters = 0

Another thing to look for is the addition of functionality or additional
arguments that is not present in the earlier version.
Functionality will obviously not be present, so you can't use it. Find a
different method.
Additional arguments are usually optional, so you can delete them.
You would have to check the documentation on the methods for each supported
version to determine this.

NickHK
 

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