我有一个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语句的错误。