我使用访问权来编辑Word文档,并使用此代码(示例)填写文档中的表单域:
.FormFields("txtProsjektNavn").result = DLookup("txt", dbName, "key =
'byggNavn'")
.FormFields("txtProsjektNr").result = DLookup("value1", dbName, "key =
'prosjektNr'")
.FormFields("txtOverblikk").result = DLookup("txt", dbName, "key =
'txtOverblikk'")
.FormFields("txtByggEier").result = DLookup("txt", dbName, "key =
'byggEier'")
然而,这一切都很好,很花哨。 其中一些值需要在文档中重复多次。 我认为在word文档中给2个formfields相同的书签名称是禁忌。因此,我没有创建大量具有不同名称的表单字段,而是尝试创建引用已经创建的表单字段的REF字段,但是,当访问更新表单字段本身时,它们不会更新。
有没有人有这方面的解决方案,或者我只需要制作许多具有不同名称的表单字段,例如:text1,text2,text3,然后可以使用相同的值填充所有表单。
答案 0 :(得分:1)
您已填写所需的表单字段。如果您想重复这些值,可以使用cross-reference
按照以下步骤设置所有字段后,您可以在填写表单字段后使用ActiveDocument.Fields.Update
自动更新字段。
插入 - >交叉引用(链接下)
选择参考类型作为书签和插入
在vba中使用
ActiveDocument.Fields.Update
来更新字段。
答案 1 :(得分:0)
我尝试了建议的解决方案,但我的问题是,当我更新文档中的所有字段时,表单字段重置为空白。 我通过循环遍历交叉引用字段并单独更新它们来解决这个问题。
docField as Word.Field
For Each docField In doc.Fields
If docField.Type = wdFieldRef Then
docField.Update
End If
Next docField