DoCmd.TransferText 方法 (Access)
在 Visual Basic 中,TransferText 方法执行 TransferText 操作。
语法
expression.TransferText (TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage)
expression:表示 DoCmd 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
TransferType | Optional | AcTextTransferType | 传输的类型。 对带分隔符的文本文件或固定宽度的文本文件或 HTML 文件中的数据可以进行导入、导出或链接操作。 默认值为 acImportDelim。 在 Microsoft Access 项目 (.adp) 中仅支持 acImportDelim、acImportFixed、acExportDelim、acExportFixed 或 acExportMerge 传输类型。 |
SpecificationName | 可选 | Variant | 字符串表达式,表示在当前数据库中创建并保存的导入或导出规范的名称。 对于固定长度的文本文件,必须指定参数或使用 schema.ini 文件,该文件还必须保存在导入、链接或导出的文本文件的同一个文件夹中。 若要创建一个方案文件,可使用文本导入/导出向导创建此文件。 对于分隔的文本文件和 Microsoft Word 邮件合并数据文件,可以将该参数保留为空,以便选择默认的导入/导出规范。 |
TableName | 可选 | Variant | 字符串表达式,表示要向其导入文本数据、从中导出文本数据或链接文本数据的 Access 表的名称,或者要将其结果导出到文本文件的 Access 查询的名称。 |
FileName | 可选 | Variant | 字符串表达式,表示要从中导入、导出到或链接到的文本文件的完整名称(包括路径)。 |
HasFieldNames | 可选 | Variant | 如果指定 True (1),可以在导入、导出或链接时将文本文件的第一行用作字段名称。 如果指定 False (0),可以将文本文件的第一行视为普通数据。 如果将此参数留空,假设使用的是默认值 (False)。 对于 Microsoft Word 邮件合并数据文件,忽略此参数,因为此类文件的第一行必须始终包含字段名称。 |
HTMLTableName | 可选 | Variant | 字符串表达式,要导入或链接的 HTML 文件中的表格或列表的名称。 除非将 TransferType 参数设置为 acImportHTML 或 acLinkHTML,否则忽略此参数。 如果将此参数留空,将导入或链接 HTML 文件中的第一个表格或列表。 若有 CAPTION 标记,HTML 文件中的表格或列表名称由 CAPTION 标记指定的文本决定。 如果没有 CAPTION 标记,名称由 TITLE 标记指定的文本决定。 如果有多个表格或列表同名,Access 会向每个表格或列表名称的末尾添加数字,从而区分它们(例如,Employees1 和 Employees2)。 |
CodePage Identifiers | Optional | Variant | Long 值,用于标识代码页的字符集。 |
注解
可用 TransferText 方法在当前的 Access 数据库或 Access 项目 (.adp) 与文本文件之间导入或导出文本。 还可以将文本文件中的数据链接到当前的 Access 数据库。 使用链接的文本文件,您可以通过 Access 查看文本数据,同时仍然可从字处理程序中对这些数据进行完全访问。 也可以导入、导出或链接到 HTML 文件 (*.html) 中的表或列表。
可以将 Access 选择查询中的数据导出到文本文件中。 Access 将像导出表一样导出查询的结果集。
示例
下面的示例使用规范“标准输出”,从 Access 表“外部报表” 将数据导出到带有分隔符的文本文件 April.doc 中。
DoCmd.TransferText acExportDelim, "Standard Output", _
"External Report", "C:\Txtfiles\April.doc"
下面的代码演示如何创建新的 Microsoft Word 文档和使用客户表中存储的数据执行邮件合并。
Public Sub DoMailMerge(strFileSavePath As String)
' Create new Word App, add a document and set it visible
Dim wdApp As New Word.Application
wdApp.Documents.Add
wdApp.Visible = True
' Open the data set from this database
wdApp.ActiveDocument.MailMerge.OpenDataSource _
Name:=Application.CurrentProject.FullName, _
OpenExclusive:=False, _
LinkToSource:=True, _
Connection:="TABLE Customers", _
SQLStatement:="SELECT Customers.* FROM Customers;"
' Add fields to the mail merge document
Dim oSel As Object
Set oSel = wdApp.Selection
With wdApp.ActiveDocument.MailMerge.Fields
oSel.TypeText vbNewLine & vbNewLine
.Add oSel.range, "First_Name"
oSel.TypeText " "
.Add oSel.range, "Last_Name"
oSel.TypeText vbNewLine
.Add oSel.range, "Company"
oSel.TypeText vbNewLine
.Add oSel.range, "Address"
oSel.TypeText vbNewLine
.Add oSel.range, "City"
oSel.TypeText ", "
.Add oSel.range, "State"
oSel.TypeText " "
.Add oSel.range, "Zip"
oSel.TypeText vbNewLine
oSel.TypeParagraph
oSel.TypeText "Dear "
.Add oSel.range, "First_Name"
oSel.TypeText ","
oSel.TypeText vbNewLine
oSel.TypeParagraph
oSel.TypeText "We have created this mail just for you..."
oSel.TypeText vbNewLine
oSel.TypeText vbNewLine
oSel.TypeText "Sincerely," & vbNewLine & "John Q. Public"
oSel.TypeText vbFormFeed
End With
' Execute the mail merge and save the document
wdApp.ActiveDocument.MailMerge.Execute
wdApp.ActiveDocument.SaveAs strFileSavePath
' Close everything and Cleanup Variables
Set oSel = Nothing
wdApp.ActiveDocument.Close False
Set wdApp = Nothing
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。