Mail merge with Word 2003 and SQL 2005 on a date and time field.

K

KB9REU

I'm trying to do a mail merge from Word 2003 and MS SQL Server 2005.
Previously I used Word 2003 and Access 2003 but I have since migrated
the data to SQL and still use Access as a front end for this app. The
app used to call a Word 2003 document through a hyperlink and run a
query to pull all records. The user would then select Mail Merge
Recipients and narrow the query down to just the date they needed.
This no longer works for me, it just returns all records as if the
query never ran. When I viewed the SQL server trace file I see that
there are #'s surrounding the date field instead of '. I've tried
creating a new datasource in word and a new mail merge document but
the query still shows #'s as being sent.

The field in the SQL server is smallDateTime.

exec sp_cursoropen @p1 output,N'SELECT * FROM "Violators" WHERE
"Letter 1 Date" = #06/11/2007#',@p3 output,@p4 output,@p5 output
select @p1, @p3, @p4, @p5


Thank you for your help,
Alan
 
P

Peter Jamieson

Word makes it pretty difficult to do date selections now because it doesn't
generate the required SQL.

If you want to query the SQL Server database directly, your best bet is
probably to create a view that returns the date in either text format, e.g.
'20070611' or numeric format, e.g. 20070611, and let the user select from
those dates instead. You should be able to use e.g.
CONVERT(nchar,mydatefieldname,112) As MyDateName
to do that.

Peter Jamieson
 
K

KB9REU

Thanks Peter.

I went with your method to return the date but instead of 112, I used
10. I made a view on the SQL server and then had to make some new
Office Data Sources in Word 2003 to connect to it, but that works
perfectly. And I did some SQL profiling and had the server throw in
an index on the table for me as well. So although the user has to
type the date differently now, the tuning adviser said 89% improvement
in speed so they're happier overall with the new solution.

Thanks again,

Alan
 
K

KB9REU

Thanks Peter.

I went with your method to return the date but instead of 112, I used
10. I made a view on the SQL server and then had to make some new
Office Data Sources in Word 2003 to connect to it, but that works
perfectly. And I did some SQL profiling and had the server throw in
an index on the table for me as well. So although the user has to
type the date differently now, the tuning adviser said 89% improvement
in speed so they're happier overall with the new solution.

Thanks again,

Alan
 
P

Peter Jamieson

Thanks for the feedback - that little speed incentive should come in handy
for others with similar problems!

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