我想使用从SQL Server数据库中提取的数据自动执行某些邮件合并功能。这是我正在使用的代码:
Sub open_DSN()
Dim strConnection As String
ActiveDocument.MailMerge.CreateDataSource Name:="DB-NAME", _
Connection:="Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=DB-NAME;Data Source=DATA-SOURCE", _
SQLStatement:="select * from DataTable"
ActiveDocument.MailMerge.OpenDataSource Name:="DB-NAME"
If ActiveDocument.MailMerge.DataSource.Name <> "" Then _
MsgBox ActiveDocument.MailMerge.DataSource.Name
' – code lifted from MS Help within Word that seems the nearest to what I require
'With ActiveDocument.MailMerge
' .MainDocumentType = wdFormLetters
' strConnection = "DSN=MS Access Databases;" _
' & "DBQ=C:\Northwind.mdb;" _
' & "FIL=RedISAM;"
' .OpenDataSource Name:="C:\NorthWind.mdb", _
' Connection:=strConnection, _
' SQLStatement:="SELECT * FROM Customers"
'End With
With ActiveDocument.MailMerge
.MainDocumentType = wdFormLetters
strConnection = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=DB-NAME;Data Source=DATA-SOURCE"
.OpenDataSource Name:="DB-NAME", _
Connection:=strConnection, _
SQLStatement:="SELECT * FROM DataTable"
End With
End Sub
不幸的是我无法获取此代码来显示数据。我做错了什么?
答案 0 :(得分:0)
您是否将“DB-NAME”和“DATA-SOURCE”替换为连接字符串中的实际值?
答案 1 :(得分:0)
那么你有一个名为DATA-Source的sql server实例,其数据库名为DB-Name吗?
可能不是吗?
更像MyServer \ MyInstance和MyDatabase
答案 2 :(得分:0)
我不知道MailMerge,因此我无法评论您用于建立连接的代码 但如果你确定代码没问题,那么它可能就是连接字符串。
有lots of different possible connection strings连接到SQL Server,因此正确的解决方案取决于您的SQL Server版本和设置(例如,Windows身份验证或SQL Server身份验证.. )。
此MSDN article表示MailMerge支持OLE DB和ODBC,因此您可以使用其中任何一种。
如果您告诉我们有关您的SQL Server设置的更多信息,我们可以帮助您为您的用例找到正确的连接字符串。