Word邮件合并SQL语句不起作用

时间:2016-12-21 17:55:16

标签: excel vb.net ms-word mailmerge

我有一个VB.NET项目,其中我试图将Excel文档与Word文档(包含合并字段)合并。对于我的代码的其他部分中的相同进程,代码运行良好(略微修改的形式),但是这个代码根本不起作用。 RecordCount一直返回-1,这似乎表明合并有问题。这是我到目前为止所达到的代码:

 Dim wdECASuitApp As New Word.Application
    Dim wdECASuitDoc As New Word.Document
    Dim Records As Integer

    wdECASuitDoc = wdECASuitApp.Documents.Open("X:\My Template.doc")

    wdECASuitApp.Visible = False  'Set this to False before going live -- true for debugging

    wdECASuitDoc.MailMerge.OpenDataSource(Name:=SourceFile, SQLStatement:="SELECT * FROM [Sheet1$] WHERE [Client Short] = 'ABC'")

在上面的最后一行代码运行后,wdECASuitDoc.MailMerge.DataSource.RecordCount返回-1,我的邮件程序跳过此部分,因为没有记录。

我主要在SQL Server中工作,所以如果这是SQL Server查询,我知道我的SQL语句语法是正确的,但是我不知道在这种情况下使用SQL的任何特定约定。

在同一程序中执行的其他合并工作很好,但是他们的SQL语句不包含任何单引号。我想知道单引号是否需要以某种方式进行转义。

问题在于上面代码块中最后一行的OpenDataSource。也许这里的某个人可以看到我所缺少的东西......

提前致谢!

编辑:我已经确认数据源中有符合SQL语句标准的记录,所以我知道这不仅仅是记录不存在的问题。 -1返回值使我相信它是查询或OpenDataSource语句的错误。

0 个答案:

没有答案