使用Access填写Word表单并不总是有效

时间:2014-03-28 12:04:56

标签: vba ms-access ms-word access-vba form-fields

我使用在线找到的代码填写Word文档中的表单字段。当我在一个空文档上使用它并添加一个表单字段时,它的工作原理。但是,当我在表单上使用它时,我试图填写执行代码时没有任何反应。我检查了Word中字段的名称,它们与代码匹配,我不知道错误。
  我还检查了Access中的数据类型,这不是问题,我现在无法访问代码但是有没有人知道导致这种情况的原因?
  编辑:这是一个类似的代码,我无法访问完全相同的代码:

Dim appWord As Word.Application
Dim doc As Word.Document
'Avoid error 429, when Word isn't open.
Err.Clear
'Set appWord object variable to running instance of Word.
Set appWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
'If Word isn't open, create a new instance of Word.
Set appWord = New Word.Application
End If
Set doc = appWord.Documents.Open("C:\Users\" & Environ$("Username") & "\Desktop\Form.doc", , True)
With doc

.FormFields("TextEn").Result = DLookup("[End date]", "[Table1]", "[Table1]![ID Number] =" & [ID2])
.FormFields("TextSt").Result = DLookup("[Starting date]", "[Table1]", "[Table1]![ID Number] =" & [ID2])



.Visible = True
.Activate
End With
Set doc = Nothing
Set appWord = Nothing
Exit Sub
errHandler:
MsgBox Err.Number & ": " & Err.Description

1 个答案:

答案 0 :(得分:0)

您可以尝试验证您的dlookup是否返回了以下值:

If DCount("[End date]", "[Table1]", "[Table1]![ID Number] =" & [ID2]) > 0 then
  .FormFields("TextEn").Result = DLookup("[End date]", "[Table1]", "[Table1]![ID Number] =" & [ID2])
End If

在尝试设置字段之前,您必须为每次查找执行此操作。