Для нашей стороны управления инцидентами в нашей базе данных я пытаюсь создать данные из полей в моей таблице (таблицах) в 149 отчете о расследованиях, шаблоне документа Word, предоставляемом государством ( см. Ссылку здесь ).
Я сделал версию документа, предназначенную только для чтения, чтобы сохранить его целостность путем принудительного сохранения пользователем, и загрузил его с полями текстовой формы с закладками для ссылки (пример: txtcaseintroduction
).
Я изменил код, найденный в inte rnet для работы с полями формы, и назначил его кнопке на одной из моих форм, чтобы помочь при создании отчета (ссылка Open
изменена в целях безопасности ):
Private Sub cmdPrint_Click()
'Export 149 Report.
Dim appWord As Word.Application
Dim doc As Word.Document
'Avoid error 429, when Word isn't open.
On Error Resume Next
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.Add("Y:\ABC\2018\Case Files\2018 - Incident Forms\OPWDD 149 - Access Database Reference.docx", , True)
With doc
.FormFields("txtNIMRS").Result = Me.NIMRSID
.FormFields("txtInternalID").Result = Me.InternalIncidentID
.FormFields("txtIncidentDate").Result = Me.[IncidentOccurrenceDate]
.FormFields("txtDiscoverydate").Result = Me.[IncidentReportDate]
.FormFields("txtCaseIntroduction").Result = Me.CaseIntroduction
.FormFields("txtIncidentLocation").Result = Me.Location
.FormFields("txtBackground").Result = Me.BackgroundInfo
.FormFields("txtProtections").Result = Me.ImmedProtec
.FormFields("txtQuestion").Result = Me.InvestQuestion
.FormFields("txtTestName").Result = Me.[TestimonialEvidence]
.FormFields("txtDocumentaryE").Result = Me.[DocumentaryEvidence]
.FormFields("txtDemonstrativeE").Result = Me.[DemonstrativeEvidence]
.FormFields("txtPhysicalE").Result = Me.[PhysicalEvidence]
.FormFields("txtWSName").Result = Me.[WrittenStatements]
.FormFields("txtSummary").Result = Me.SummaryEvidence
.FormFields("txtConclusions").Result = Me.Text409
.FormFields("txtRecommendations").Result = Me.Text411
.FormFields("txtInvestigator").Result = Me.Investigator_s__Assigned
.FormFields("txtdatereport").Result = Me.Investigative_Report_Completion_Date
.Visible = True
.Activate
End With
Set doc = Nothing
Set appWord = Nothing
Exit Sub
errHandler:
MsgBox Err.Number & ": " & Err.Description
End Sub
Работают следующие поля:
.FormFields("txtNIMRS").Result = Me.NIMRSID
.FormFields("txtInternalID").Result = Me.InternalIncidentID
.FormFields("txtIncidentDate").Result = Me.[IncidentOccurrenceDate]
.FormFields("txtDiscoverydate").Result = Me.[IncidentReportDate]
.FormFields("txtIncidentLocation").Result = Me.Location
.FormFields("txtBackground").Result = Me.BackgroundInfo
.FormFields("txtProtections").Result = Me.ImmedProtec
.FormFields("txtQuestion").Result = Me.InvestQuestion
.FormFields("txtConclusions").Result = Me.Text409
.FormFields("txtRecommendations").Result = Me.Text411
.FormFields("txtdatereport").Result = Me.Investigative_Report_Completion_Date
Остальные поля (case introduction
, investigator
и поля вложений) не работают. Все эти поля существуют в одной таблице. Также отмечается, что введение случая работало, но перестало работать, так как я попытался выяснить больше полей формы для применения к документу и справке. Цель состояла в том, чтобы следователь по существу выполнил всю свою работу в базе данных, а затем экспортировал ее в требуемый формат для отправки в штат.
Мой вопрос : что мне нужно сделать с приведенным выше кодом, чтобы получить функциональные нерабочие поля при заполнении документа Word?
Отвечая на вопросы в комментариях
Ошибка не возникает; текстовые поля просто не заполняются, когда я нажимаю кнопку.
Поля формы не должны присутствовать в результирующем документе. Они просто "цели" для данных.