MailMerge 查询字符串超过 255 个字符

MailMerge query string exceeds 255 characters

我的自动邮件合并应用程序有问题。该应用程序使用 MS Word 模板和 MS Word 数据源。我正在使用以下方法创建数据源并将其绑定到模板:

 expression.CreateDataSource(Name, PasswordDocument, WritePasswordDocument, HeaderRecord, MSQuery, SQLStatement, SQLStatement1, Connection, LinkToSource);

这里是这个方法的MSDN页面,供参考:

https://msdn.microsoft.com/en-us/library/office/ff820730(v=office.15).aspx

一切正常,但是,我的一些 Word 模板有很多 if 语句,使查询字符串超过 255 个字符。当应用程序尝试执行 createDataSource 方法时,它会出错。

看起来 MSDN 页面上说 SQLStatement,SQLStatement1 参数可用于将查询分成两部分。所以,我的问题是如何利用这些参数?它们是可选的,目前我没有使用它们。

也许有更好的解决方案?任何见解都会很棒!我做了很多网络搜索,但没有找到明确的解决方案。

如果有任何其他信息,请告诉我。需要更好地解决这个问题。

谢谢!

当 Word 执行 OpenDataSource 方法时,它连接 SQLStatement 和 SQLStatement1 参数值以创建单个查询语句。举个简单的例子,如果你的查询需要

SELECT * FROM mytable

然后你可以设置

SQLStatement:="SELECT *", SQLStatement1:=" FROM mytable"

即您需要确保连接字符串中有有效空格。

总查询长度的限制可能因数据源而异。 AFAICR 一些来源 types/connection 方法仍然有 255 个字符的限制。但我认为您将获得 Word 允许使用 .mdb/.accdb 源的完整 511。

使用支持 queries/views 的数据源执行此操作的另一种方法可能是在数据库中创建查询或视图并将其用作数据源。