MS Access 中的 MS Word vba
MS Word vba in MS Access
我正在尝试使用 MS Access 打开 MS Word,创建表单域和表格,但最终总是空的。我尝试使用相同的代码,但将“with doc”之间的整个代码替换为 .formfields(“TxtDate”).result = me.txt2 并且能够将我在 txt2 中键入的任何内容传输到位于 ms word 中的表单域中。因此我不确定代码的哪一部分出错了。想寻求有关我的代码的帮助。谢谢
Function FillWordForm()
Dim appword as Word.Application
Dim doc as Word.Document
Dim Path as String
On Error Resume Next
Error.Clear
Path = "H:\project delta\test.docx"
Set appword = GetObject(, "word.application")
If Err.Number <> 0 then
Set appword = New Word.Application
appword.Visible = true
End if
Set doc = appword.Documents.open(Path, , False)
With Doc
Selection.TypeParagraph
Selection.FormFields.Add Range:=Selection.Range, Type:= _
WdFieldFormTextInput
ActiveDocument.FormFields.Shaded = Not ActiveDocument.FormFields.Shaded
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=13, NumColumns:= _
4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "Table Grid" then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = True
.Cell(1,1).Select
Selection.TypeText Text:="S/N"
.Cell(1,2).Select
Selection.TypeText Text:="Package Title"
.Cell(1,3).Select
Selection.TypeText Text:="Reference"
.Cell(1,4).Select
Selection.TypeText Text:="Month"
End With
appword.Visible = True
appword.Activate
End With
Set doc = Nothing
Set appword = Nothing
End Function
考虑到评论,问题可能是由于 Word 进程仍然 运行 在后台运行,即使没有显示在任务管理器中。这可能是由对 Word 对象的不合格引用引起的。
在每个 Selection
和 ActiveDocument
用法和代码前面加上前缀 appword.
然后每次都应该 运行。现在对我有用了。
其他 Office 应用程序的自动化代码也会发生这种情况 - Excel、Outlook、PowerPoint 等
我正在尝试使用 MS Access 打开 MS Word,创建表单域和表格,但最终总是空的。我尝试使用相同的代码,但将“with doc”之间的整个代码替换为 .formfields(“TxtDate”).result = me.txt2 并且能够将我在 txt2 中键入的任何内容传输到位于 ms word 中的表单域中。因此我不确定代码的哪一部分出错了。想寻求有关我的代码的帮助。谢谢
Function FillWordForm()
Dim appword as Word.Application
Dim doc as Word.Document
Dim Path as String
On Error Resume Next
Error.Clear
Path = "H:\project delta\test.docx"
Set appword = GetObject(, "word.application")
If Err.Number <> 0 then
Set appword = New Word.Application
appword.Visible = true
End if
Set doc = appword.Documents.open(Path, , False)
With Doc
Selection.TypeParagraph
Selection.FormFields.Add Range:=Selection.Range, Type:= _
WdFieldFormTextInput
ActiveDocument.FormFields.Shaded = Not ActiveDocument.FormFields.Shaded
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=13, NumColumns:= _
4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "Table Grid" then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = True
.Cell(1,1).Select
Selection.TypeText Text:="S/N"
.Cell(1,2).Select
Selection.TypeText Text:="Package Title"
.Cell(1,3).Select
Selection.TypeText Text:="Reference"
.Cell(1,4).Select
Selection.TypeText Text:="Month"
End With
appword.Visible = True
appword.Activate
End With
Set doc = Nothing
Set appword = Nothing
End Function
考虑到评论,问题可能是由于 Word 进程仍然 运行 在后台运行,即使没有显示在任务管理器中。这可能是由对 Word 对象的不合格引用引起的。
在每个 Selection
和 ActiveDocument
用法和代码前面加上前缀 appword.
然后每次都应该 运行。现在对我有用了。
其他 Office 应用程序的自动化代码也会发生这种情况 - Excel、Outlook、PowerPoint 等