2017-05-03 48 views
1

进出口使用访问使用此代码(例如)填写文档中formfields编辑Word文档和IM:编辑formfields /从访问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个表单赋予相同的书签名称是一个禁忌。因此,不必创建大量不同名称的表单域,我试图创建引用已经创建的表单域的REF域,但是,当访问更新表单域本身时,它们不会更新。

有没有人有这个解决方案,或者我只需要使用不同的名称,如:text1,text2,text3,然后有权访问使用相同的值填充它们的大量表单域。

回答

0

我尝试了建议的解决办法,但我的问题是,当我在文档中的所有字段更新表单字段重置为空白。 我通过循环遍历交叉引用字段来解决这个问题,并单独对它们进行更新。

docField as Word.Field 

    For Each docField In doc.Fields 
    If docField.Type = wdFieldRef Then 
     docField.Update 
    End If 
    Next docField 
1

您已填写所需的表单字段。如果您想重复这些值,您可以使用cross-reference

一旦您按照以下步骤设置了所有字段,那么您可以在填充表单字段后使用ActiveDocument.Fields.Update自动更新字段。

插入 - >交叉参考(在链接)

enter image description here

选择参考类型为书签和插入

enter image description here

在vba中使用ActiveDocument.Fields.Update更新字段。

enter image description here

+0

嘿!这正是我正在寻找的东西,而我刚才也是这样做的。但是,有些问题,我运行activedocument.fields.update后,我的表单字段重置为空白。哪一种导致交叉引用是空白的 – Arne