2014-03-28 4 views
0

Word 문서의 양식 필드를 채우기 위해 온라인에서 찾은 코드를 사용하고 있습니다. 빈 문서에서 사용할 때 양식 필드에 추가하면 작동합니다. 그러나, 나는 내가 코드를 실행할 때 아무것도 채우기 위해 노력하고있어 양식에 사용할 때. Word에서 필드의 이름을 확인하고 코드와 일치하는지, 잘못된지는 알 수 없습니다.
또한 Access에서 데이터 유형을 확인했는데 문제가 아니며 지금 당장 코드에 액세스 할 수 없지만이 문제를 일으키는 원인을 알 수있는 사람이 있습니까?
편집 : 여기 내가 똑같은 하나에 액세스 할 수없는, 비슷한 코드 :Access를 사용하여 Word 양식을 채우는 것이 항상 작동하는 것은 아닙니다.

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 
+0

Word에는 몇 가지 유형의 필드가 있으므로 코드가 잘못된 위치에서 코드를 찾고 있습니다. 그러나 코드를 보지 않고 말할 수는 없습니다. 공유 할 수 있습니까? – Blackhawk

+1

코드 – user3352431

+1

으로 게시물을 편집했습니다. 'On Error Resume Next'는 문제의 진정한 본질을 숨기고 일을 자동으로 실패하게 만듭니다. 코멘트를 써보십시오. – pteranodon

답변

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 

필드를 설정하기 전에 각 조회마다이 작업을 수행해야합니다.