View Single Post
  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tonne Tonne is offline
external usenet poster
 
Posts: 2
Default Mail merge: reopening saved document prompts for SQL command t

Yes. I should have mentioned that, sorry.
Adding the registry key will solve the symptoms; I just wondered if I did
something wrong.

This morning I did a manual mail merge, saved the main document after the
merge and the exact same prompt for SQL statement twice when reopening!
A flaw in Office 2007, perhaps?

I can live with the registry fix as I can apply it from my program before
doing the mail merge.

--
Henrik Tonnesen
attentive as


"Peter Jamieson" wrote:

Before doing anything, have you applied the registry change in the
following article:

http://support.microsoft.com/kb/825765

Also, which version of word are you using?

Peter Jamieson

http://tips.pjmsn.me.uk
Visit Londinium at http://www.ralphwatson.tv

Tonne wrote:
I am trying to merge a csv file:
Name;Address;Zipcode;City
My name;Where I live;DK-0000;Nearby
With a template containg bookmarks for Name, Address, ...

Everything works except for the two prompts for executing SQL commands when
the document is reopened. First a prompt for the real csv file and then a
prompt for a temporary csv file.
If I accept both the merge is repeatable.
If i print the query from VBA (ctrl-G print
activedocument.mailmerge.datasource.querystring) the result is a query on the
temporary file.

Here is the code (using 'generic' COM classes for everything):
COMappl = new COM(Word.Application);
COMdocuments = COMappl.documents();
COMdocument = COMdocuments.open(template); // variable holding
the template file
COMdocument.saveas(filename); // variable holding the saved doc
COMappl.visible(true);

COMmailmerge = COMdocument.mailmerge();
COMmailmerge.OpenDataSource(fileNameData,0,0,0,1); // variable
holding the datafile (csv)
COMmailmergefields = COMmailmerge.fields();

COMbookmarks = COMdocument.bookmarks();
COMbookmark = coMbookmarks.item('Name');
COMrange = coMbookmark.range();
COMmailmergefields.Add(COMrange,'Name'); // insert just one merge
field

COMmailmerge.Execute();
COMappl.Activate();

COMdocument.save();

Any ideas?