Ms access VBA-通过access进行邮件合并

Ms access VBA-通过access进行邮件合并,ms-access,vba,ms-word,Ms Access,Vba,Ms Word,我不知道为什么我的代码不起作用。。 我在Access 03中的vba中有代码,它打开了一个word文档,该文档运行邮件合并过程。 当代码运行时,它会询问标题分隔符是什么。我将导出文件中的字段分隔符指定为逗号,并将其指定为记录分隔符。在word中确认后,我得到一个运行时错误 我得到的错误是: 运行时错误“5922”: Word无法打开数据源 strExportFullyQualifiedName是一个文本文件,使用其中列出的字段名导出,用作数据源文件 我检查了链接,确认了一切都存在。未建立连接。

我不知道为什么我的代码不起作用。。 我在Access 03中的vba中有代码,它打开了一个word文档,该文档运行邮件合并过程。 当代码运行时,它会询问标题分隔符是什么。我将导出文件中的字段分隔符指定为逗号,并将其指定为记录分隔符。在word中确认后,我得到一个运行时错误

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

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

我检查了链接,确认了一切都存在。未建立连接。 strExportFullyQualifiedName是txt文件的位置


谢谢

您是否有对单词库的引用(代码窗口->工具->引用)?如果不是,则需要使用内置常量的值,例如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
  • 您说过两次StrExportyQualifiedName是文本文件的位置。我以前从未自动化过这个过程,但我认为您只能从Word文件导出

  • strExportFullyQualifiedName是否同时包含文件路径和文件名?e、 g.“C:\Test.Doc”


  • 是的。它是:Microsoft Word 11.0对象Library@PowerUser:代码运行的上下文是Access,而不是Word,否?如果我错了,请纠正我,但我认为在这里运行代码并不重要。邮件合并是MS Word中的一个功能,据我所知,它只能处理Word文件。因此,他的代码应该引用一个Word文件作为源。Word mail merge可以使用任意数量的数据源、文本文件、Excel文件、Access MDB等。它不需要Word文件作为数据源。我能够通过从Word记录连接宏,编辑一些内容并将其放回Access中来实现这一点,并且成功了!
    ''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