问题描述
我正在尝试将 Access 数据库中的数据插入 Word 文档。
我不能使用简单的合并功能来实现,因为我想要获取的信息并不总是来自特定单词字段的相同数据库字段。
我只想拥有“占位符”或字段,我可以在其中设置使用 VBA 直接从数据库获取的文本。在 excel 中很容易,但在 Word 中似乎有点复杂。
我想有一个模板,可以看到未来信息将从 DB 写入的位置。
出于格式化目的,我们有一个包含一些文本的单元格表格,以便我们可以轻松地将文本垂直和水平居中,将表格相对于页面居中,并给出整个背景颜色,调整表格大小和页面一样宽。
我在表格中放置了一个字段,当我尝试设置该 FormFioelds 文本时,我收到一条错误消息,指出无法删除该范围。我认为是错误号 6028。 我使用的简单代码是这样的: FormField 被分配了一个书签名称“title_field”。
With ThisDocument
.FormFields("title_field").Range.Text = rs!title
'Other code here
End With
表格外的字段没有出现错误,这些字段直接在文档中并且文本设置正常。
错误是由我应该知道的某些规则引起的吗?
解决方法
«我想要获取的信息并不总是来自特定单词字段的同一个数据库字段»
如果字段来自同一记录,那应该无关紧要。大概你有一些逻辑来确定哪个数据字段获得输出。 Word mailmerge 主文档中的字段编码可用于确定要显示哪个数据字段的输出。有关使用 mailmerge 字段编码可以完成的一些操作的演示,请参阅 Mailmerge 提示和技巧页面:
https://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
«出于格式化目的,我们有一个单元格表格......并提供整个背景颜色,表格的大小与页面一样宽»
如果您要为页面着色,无论是通过页面着色还是背景中的着色自动形状,都无需对表格应用任何着色以使其与背景匹配。
至于你的宏代码,它对我来说很好。