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) 中仅支持 acImportDelimacImportFixedacExportDelimacExportFixedacExportMerge 传输类型。
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 参数设置为 acImportHTMLacLinkHTML,否则忽略此参数。 如果将此参数留空,将导入或链接 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。