Ms access VBA-通过access进行邮件合并
我不知道为什么我的代码不起作用。。 我在Access 03中的vba中有代码,它打开了一个word文档,该文档运行邮件合并过程。 当代码运行时,它会询问标题分隔符是什么。我将导出文件中的字段分隔符指定为逗号,并将其指定为记录分隔符。在word中确认后,我得到一个运行时错误 我得到的错误是: 运行时错误“5922”: Word无法打开数据源 strExportFullyQualifiedName是一个文本文件,使用其中列出的字段名导出,用作数据源文件 我检查了链接,确认了一切都存在。未建立连接。 strExportFullyQualifiedName是txt文件的位置Ms access VBA-通过access进行邮件合并,ms-access,vba,ms-word,Ms Access,Vba,Ms Word,我不知道为什么我的代码不起作用。。 我在Access 03中的vba中有代码,它打开了一个word文档,该文档运行邮件合并过程。 当代码运行时,它会询问标题分隔符是什么。我将导出文件中的字段分隔符指定为逗号,并将其指定为记录分隔符。在word中确认后,我得到一个运行时错误 我得到的错误是: 运行时错误“5922”: Word无法打开数据源 strExportFullyQualifiedName是一个文本文件,使用其中列出的字段名导出,用作数据源文件 我检查了链接,确认了一切都存在。未建立连接。
谢谢 您是否有对单词库的引用(代码窗口->工具->引用)?如果不是,则需要使用内置常量的值,例如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
是的。它是: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