Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
late binding
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.x ls", _ Any suggestions? |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
late binding
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.x ls", _ ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _ AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _ WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _ Format:=wdOpenFormatAuto, Connection:= _ "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";Us er ID=Admin;Data Source=\\powervault2\home_pl\common\Referrals\Refe rals.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 "JLatham" <HelpFrom @ Jlathamsite.com.(removethis) wrote in message ... With 'late binding' basically everything is an Object until you actually do assignments with the Set statement. So you need to Dim myDoc as Object also. You'll need to refer to the objects instead of the application in the code, as instead of Set myDoc = Word.Documents.Open(... it becomes Set myDoc = wdApp.Documents.Open(... and probably a good thing in the rest would be something like: With myDoc .MailMerge.MainDocumentType=... .MailMerge.OpenDatasource Name:=... ... End With or even With myDoc.MailMerge .MainDocumentType=... .OpenDatasource Name:=... ... End With Whether you can use that second one depends on what else is going on with the document besides MailMerge methods. "Michelle Hanan" wrote: 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.x ls", _ Any suggestions? |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
late binding
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 "Michelle Hanan" wrote in message ... 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.x ls", _ Any suggestions? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Late Binding examples of binding excel application | Excel Programming | |||
Late Binding | Excel Programming | |||
Late Binding | Excel Programming | |||
EARLY binding or LATE binding ? | Excel Programming | |||
DAO Late Binding? | Excel Programming |