将Access数据库中突出显示的行的字段导出到Word文档

时间:2014-01-03 09:19:19

标签: vba ms-access ms-word office-2010

我有一个访问数据库,我想将一个突出显示的行中的字段导出到word文档并通过电子邮件发送给收件人。

从Access数据库我想导出以下字段: 缩写(字符串),HospNo(字符和数字字符串),日期,注释(字符串)

我希望将这些字段从我选择的行导出到word文档c:\ test.docx,其中4个MERGEFIELD分别被标记为Inits,HosNumber,ScanDate,Diagnosis。

我认为MailMerge是解决方案,这也是我在Word中使用Mergefileds的原因。但我知道很少有VBA,也不知道从哪里开始。

我的PC上有Office 2010。

这些信息是否足以解释问题?

2 个答案:

答案 0 :(得分:0)

如果您已经在使用MailMerge,则只需在Access中选择该行并使用外部数据链接下的Word Merge功能。 如果您正在寻找更自动化的程序,我相信您将需要使用代码。

答案 1 :(得分:0)

从很高的层面来看,您可能需要在VBA中创建一个只包含您要导出的记录的记录集。然后,您可以将该记录集用作mailmerge的源。

我从未做过mailmerges,但这应该让你开始:

Dim db as Database
Dim rec as Recordset

Set db = CurrentDB
Set rec = db.OpenRecordset("SELECT Initials, HospNo, [date], comment FROM MyTableName WHERE SomeFilterCriteria")

'Mailmerge based on "rec"

显然,你需要根据你的具体信息更改MyTableName和MyFilterCriteria,你没有给我们提供表名或你想如何确定哪些数据记录到mailmerge。

或者您可以构建查询,从查询中设置mailmerge,然后在查询中添加指向表单的过滤器。在查询的Criteria行中(如果在Design View中打开它),您可以使用类似

的内容
[Forms]![MyFormName].[MyFieldName]

此外,如果您有能力这样做,请更改日期字段名称。单词“date”是一个保留字,这意味着你必须将它括在括号中,以便Access不认为它是内置命令。将字段名称更改为scandate或其他内容以避免将来出现问题。