VBA - 通过访问进行邮件合并

时间:2010-03-03 19:40:16

标签: ms-access vba ms-word

我不确定为什么我的代码不能正常工作.. 我在Access 03中的vba中有代码,它打开一个运行邮件合并过程的word文档。 当代码运行时,它会询问Header Delimiters是什么。我在导出文件中将其指定为字段分隔符的逗号和记录分隔符。在我确认后,我得到一个运行时错误。

我得到的错误是: 运行时错误'5922': Word无法打开数据源。

strExportFullyQualifiedName是一个文本文件,使用其中列出的字段名称导出,该字段名称将用作数据源文件。

我检查了链接并验证,一切都存在。没有建立连接。 strExportFullyQualifiedName是txt文件的位置。

  

 With objWordDoc
        .MailMerge.OpenDataSource _
          Name:=strExportFullyQualifiedName, Format:=wdOpenFormatAuto, _
          ConfirmConversions:=False, ReadOnly:=False, SubType:=wdMergeSubTypeAccess, AddToRecentFiles:=False
        .MailMerge.Destination = wdSendToNewDocument
        .MailMerge.MainDocumentType = wdDirectory
        .MailMerge.SuppressBlankLines = True
    End With

谢谢!

2 个答案:

答案 0 :(得分:1)

您是否参考了Word库(代码窗口 - >工具 - >参考)?如果没有,您将需要使用内置常量的值,例如wdOpenFormatAuto

编辑重新评论

由于您有文本文件,我不相信您的类型是正确的。尝试类似:

''To create output, if required
''DoCmd.TransferText acExportDelim, , "qryMailMerge", strExportFullyQualifiedName, True

 With objWordDoc
     .MailMerge.OpenDataSource _
      Name:=strExportFullyQualifiedName, Format:=wdOpenFormatText
     .MailMerge.Destination = wdSendToNewDocument
     .MailMerge.MainDocumentType = wdDirectory
     .MailMerge.SuppressBlankLines = True
 End With

答案 1 :(得分:1)

  1. 您曾两次说过 strExportFullyQualifiedName 是文本文件的位置。我之前从未自动化此过程,但我认为您只能从 Word 文件中导出。

  2. strExportFullyQualifiedName 是否包含文件路径&文件名?例如“C:\ TEST.DOC”?