MailMerge.OpenDataSource 方法 (Word)

将一个数据源附加到指定文档,如果该文档不是主文档,则将变成主文档。

语法

expressionOpenDataSource( _Name_ , _Format_ , _ConfirmConversions_ , _ReadOnly_ , _LinkToSource_ , _AddToRecentFiles_ , _PasswordDocument_ , _PasswordTemplate_ , _Revert_ , _WritePasswordDocument_ , _WritePasswordTemplate_ , _Connection_ , _SQLStatement_ , _SQLStatement1_ , _OpenExclusive_ , _SubType_ )

expression 是必需的。 一个代表“MailMerge”对象的变量。

参数

名称 必需/可选 数据类型 说明
Name 必需 字符串 数据源文件名。 可以指定一个 Microsoft Query (.qry) 文件,而不必指定数据源、连接字符串及查询字符串。
Format 可选 Variant 用于打开文档的文件转换器。 可以是 WdOpenFormat 常量之一。 要指定外部文件格式,可将 OpenFormat 属性与 FileConverter 对象结合使用以确定用于该参数的值。
ConfirmConversions 可选 Variant 如果该属性值为 True,则当文件不是 Microsoft Word 格式时,将显示“转换文件”对话框。
ReadOnly 可选 Variant 如果该属性值为 True,则以只读方式打开数据源。
LinkToSource 可选 Variant 真正 执行查询指定连接,则每次打开主文档。
AddToRecentFiles 可选 Variant 要将文件名添加到列表中最近使用的文件在 文件菜单的底部。
PasswordDocument 可选 Variant 用于打开数据源的密码。 请参阅下面的"说明")。
PasswordTemplate 可选 Variant 用于打开模板的密码。 请参阅下面的"说明")。
Revert 可选 Variant 控制如果 Name 是已打开文档的文件名,会发生什么情况。 真正 放弃对已打开文档任何未保存的更改并重新打开该文件; 以激活打开的文档。
WritePasswordDocument 可选 Variant 用于保存对文档所做的更改的密码。 请参阅下面的"说明")。
WritePasswordTemplate 可选 Variant 用于保存对模板所做的更改的密码。 请参阅下面的"说明")。
Connection 可选 Variant 执行 SQLStatement 指定的查询的范围。 请参阅下面的"说明")。
SQLStatement 可选 Variant 定义查询选项以检索数据。 请参阅下面的"说明")。
SQLStatement1 可选 Variant 如果查询字符串超过 255 个字符,则 SQLStatement 指定字符串的第一部分,SQLStatement1 指定第二部分。 请参阅下面的"说明")。
OpenExclusive 可选 Variant 真正 以独占方式打开。
SubType 可选 Variant 可以是 WdMergeSubType 常量之一。

备注

要确定 ODBC 连接和查询字符串,请手动设置查询选项,并使用 QueryString 属性返回连接字符串。 下表包含了一些常用的 SQL 关键字。

关键字 Description
DSN ODBC 数据源的名称
UID 用户登录 ID
Pwd 用户指定的密码
DBQ 数据库文件名
FIL 文件类型

若要指示 Word 使用与早期版本的 Word (Dynamic Data Exchange 中的相同连接方法, (Microsoft Office Access 和 Microsoft Office Excel 数据源的 DDE) ) 使用 SubType:=wdMergeSubTypeWord2000

指定区域的方式取决于检索数据的方式。 例如:

  • 当通过开放式数据库连接 (Open Database Connectivity, ODBC) 检索数据时,请指定一个连接字符串。

  • 当使用动态数据交换 (DDE) 检索 Excel 的数据时,请指定一个已命名的区域。

  • 当检索 Access 的数据时,请指定单词"Table"或"Query",后面紧接表格或查询名称。

重要

尽量避免在应用程序中使用硬编码的密码。 如果过程中需要使用密码,请向用户请求密码并将其存储在一个变量中,然后在代码中使用该变量。 有关如何执行此操作的建议最佳做法,请参阅 Office 解决方案开发人员的安全说明

示例

本示例新建一个主文档并附加 Orders 表,该表来自名为“Northwind.mdb”的 Access 数据库。

Dim docNew As Document 
 
Set docNew = Documents.Add 
 
With docNew.MailMerge 
 .MainDocumentType = wdFormLetters 
 .OpenDataSource _ 
 Name:="C:\Program Files\Microsoft Office" & _ 
 "\Office\Samples\Northwind.mdb", _ 
 LinkToSource:=True, AddToRecentFiles:=False, _ 
 Connection:="TABLE Orders" 
End With

本示例创建一个新的主文档,并附加名为 Names.xls 的 Excel 工作表。 Connection 参数用来检索名为“Sales”的区域中的数据。

Dim docNew As Document 
 
Set docNew = Documents.Add 
 
With docNew.MailMerge 
 .MainDocumentType = wdCatalog 
 .OpenDataSource Name:="C:\Documents\Names.xls", _ 
 ReadOnly:=True, _ 
 Connection:="Sales" 
End With

本示例用 ODBC 将名为“Northwind.mdb”的 Access 数据库附加到活动文档。 SQLStatement 参数用来在 Customers 表中选择记录。

Dim strConnection As String 
 
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

另请参阅

邮件合并对象

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。