MailMerge.OpenDataSource 方法 (Word)
将一个数据源附加到指定文档,如果该文档不是主文档,则将变成主文档。
语法
expression。 OpenDataSource
( _Name_
, _Format_
, _ConfirmConversions_
, _ReadOnly_
, _LinkToSource_
, _AddToRecentFiles_
, _PasswordDocument_
, _PasswordTemplate_
, _Revert_
, _WritePasswordDocument_
, _WritePasswordTemplate_
, _Connection_
, _SQLStatement_
, _SQLStatement1_
, _OpenExclusive_
, _SubType_
)
expression:必需。 一个代表"MailMerge"对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Name | 必需 | String | 数据源文件名。 可以指定一个 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 关键字。
Keyword | 说明 |
---|---|
DSN | ODBC 数据源的名称 |
UID | 用户登录 ID |
PWD | 用户指定的密码 |
DBQ | 数据库文件名 |
FIL | 文件类型 |
若要指示 Word 使用与早期版本的 Word (Dynamic Data Exchange (DDE) for Microsoft Office Access 和 Microsoft Office Excel 数据源相同的) 方法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
本示例创建一个新的主文档,并Excel名为 Names.xls。 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。