> Peter - I'm not familiar with Word VB - I believe I did what you
> suggested -
> open VB - clicked on the open document that opened a new sheet, typed in
> as
> you asked - hit enter - nil - tried run - nil - I guess it needs something
> else!
In the VB Editor you need to type what I suggested into the "Immediate
Window". If you didn't see an "Immediate Window", click View|Immediate
Window to open it.
If you have the time today, can you clarify a couple of things here:
> I have a desktop link to the SQL Server data on the server
What sort of link is this?
> I also have a
> link to the tables through Navision - I've tried cutting and pasting
> records
> from that data into an Access database on my local PC - I consistently get
> the same results: the first record of the requested records is always
> replaced with the first record on the table in use.
> Even when I've cut the
> data to a new Access table. (e.g I cut 100 records into a new table,
> properties from Berkshire, Oxfordshire, Wiltshire - I try to select all
> properties in Oxfordshire but the first record is record 1 - a property in
> Berkshire)
Are you saying that
a. whatever you retrieve the records into, you still see the problem where
"record 1 in the database" replaces the first record you want? Even if Word
is not involved at all? or that
b. when you retrieve the records into Access, they are the ones you want,
and it is only when you try to get them via Word that the replacement
occurs? (Seems unlikely that that could be the case but maybe you could
confirm/deny)
If it's (a) then I would have to suspect an error in your Dynamics database
(perhaps index corruption as I suggested, or a problem - perhaps
corruption - in an OLEDB provider and/or some other part of Microsoft's
general data access software (a.k.a. the MDAC). If the Dynamics database
makes extensive use of SQL Transact procedures, than I could just about
imagine that there is an error in (one of) the relevant procedure(s), but
that seems highly unlikely.
If you haven't tried the ODBC route, that's still my best guess at the
moment for a quick solution, primarily because that's what Word 2000 would
have used. However, it is usually non-trivial to connect using that method
so maybe we had better leave it for now...
Peter Jamieson
> Peter - I'm not familiar with Word VB - I believe I did what you
> suggested -
[quoted text clipped - 127 lines]
>> >> >> > Any
>> >> >> > ideas??
RSMITH - 17 Jul 2006 13:18 GMT
Peter - sorry for the delay in getting back to you - having now understood a
little more the results were as follows:
print ActiveDocument.MailMerge.DataSource.QueryString
SELECT * FROM "Permadoor$PMDR Property"
print ActiveDocument.MailMerge.DataSource.Name
C:\Documents and Settings\RogerSmith\My Documents\My Data
Sources\192.168.1.199 Permadoor Permadoor$PMDR Property.odc
print ActiveDocument.MailMerge.DataSource.ConnectString
Provider=SQLOLEDB.1;Password=roger;Persist Security Info=True;User
ID=rsmith;Initial Catalog=Permadoor;Data Source=192.168.1.199;Use Procedure
for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=S_F2;Use
Encryption for Data=False;Tag with column collation when possible=False
The link to the data is across the network - the data being on the server -
SQL server being where the data is held and this is accessed through a MS
Navision front.
When I ask Word through Mail Merge Helper to filter all records for say,
Oxfordshire, it replaces record 1 for Oxfordshire with record one for the
entire database and that may be say a record for Berkshire. (When I try the
same on another machine where Word 2000 is used the problem does not exist -
I only get this on Word 2003.)
Regards
Roger Smith
> > Peter - I'm not familiar with Word VB - I believe I did what you
> > suggested -
[quoted text clipped - 181 lines]
> >> >> >> > Any
> >> >> >> > ideas??
Peter Jamieson - 19 Jul 2006 09:37 GMT
Hello Roger,
I've also been away. BTW, because we've been discussing this question for a
while, I should say that it's quite likely that I will not be able to get to
the bottom of the problem, and certainly not if it results from a fault in
Word 2003 or Microsoft's MDAC code, so you might want to consider opening a
support incident directly with Microsoft (we're just volunteers), e.g. via
http://support.microsoft.com, or any other support agreement you might have
with Microsoft.
I couldn't see anything in the values you provided that would cause problems
on their own. It may be significant that you are not using "Integrated
Security" to log into the SQL Server, but I doubt it. If you can answer my
other questions (with the (a)/(b) options), so much the better.
I notice that the QueryString value does not have any "WHERE" clause which I
would expect if you had applied a filter, so I'm assuming that the value you
provided is the one you see when you open the document. Can you try applying
the filter you want (e.g. Oxfordshire records) and print out the value of
QueryString at that point? Also, if you are still able to do this from Word
2000, please print the same three values from there - that should also make
it easier to try the "connecting via ODBC" option I suggested.
Peter Jamieson
> Peter - sorry for the delay in getting back to you - having now understood
> a
[quoted text clipped - 241 lines]
>> >> >> >> > Any
>> >> >> >> > ideas??