OpenDataSource problem

P

Phill

I have and Access 2003 (saved as Access 2000 format) database using Word 2003
to do a simple mail merge. I get a message that says it couldn't open the
document. When I try to manually do the merge, and test the connection, I
get a message saying "test connection failed because of an error in
initializing provider. The database has been placed in a state by user
'Admin' ...that prevents it from being opened." When I close my database
and
test the connection it works. I've tried this several times with the same
results. Any ideas? Thanks. Phill

Here is my code.

Set WordDoc = GetObject(strFinalDoc, "Word.Document")
WordDoc.Application.Visible = True

WordDoc.MailMerge.OpenDataSource _
Name:=CurrentDb.Name, _
LinkToSource:=True, _
ReadOnly:=True, _
Connection:="TABLE tempMailMerge", _
SQLStatement:="SELECT * FROM tempMailMerge"

WordDoc.MailMerge.Execute
 
P

Peter Jamieson

I would guess the problem is as follows:
a. you already have the data base open
b. the Connection string is the string that you would have used in Word
2000 or earlier to open the database using DDE
c. however, the OpenDataSource code you are using will cause Word to try to
open the database using OLEDB, not DDE. OLEDB will not recognise this
connection string, either.
d. OLEDB probably tries to open the database in a sharing mode that is
incompatible with the mode it is already open in, and will fail.

Possible solutions:
e. modify the connection string to specify a mode that will work (not sure
this can actually work)
f. add the parameter

SubType:=wdMergeSubTypeWord2000

to your OpenDataSource call. This shouls make Word open the database using
DDE.

NB, you probably do not need either of these lines:
LinkToSource:=True, _
ReadOnly:=True, _

Peter Jamieson
 

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