我使用Access将数据发送到我在Word中创建的模板。在它成功发送数据后,我需要使打开的Word文档不可编辑。
另外,我注意到在完成文档后,它会提示保存。是否可以删除此提示,但允许保存功能。
这是我用来进行Word Automation的代码:
' Create a Word document from template.
Dim WordApp As Word.Application
Dim strTemplateLocation As String
Dim myVariable As String
myVariable = “TEST!!”
' Specify location of template
strTemplateLocation = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & "test.dot"
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
WordApp.WindowState = wdWindowStateMaximize
WordApp.Documents.Add Template:=strTemplateLocation, NewTemplate:=False
' Replace each bookmark with field contents.
WordApp.Selection.GoTo what:=wdGoToBookmark, Name:="myBookmark"
WordApp.Selection.TypeText myVariable
DoEvents
WordApp.Activate
Set WordApp = Nothing
答案 0 :(得分:1)
Document
对象具有Saved
属性,如果进行了任何更改,通常会更改为False
。如果您将此属性设置为True
,那么当您关闭文档时,系统不会提示您保存文档,但如果您需要,仍然可以手动保存文档(通过Save
或Save As...
)到。
您可以使用Protect
对象的Document
方法来限制用户可以进行的更改。例如,您可以使用参数wdAllowOnlyReading
调用它,这意味着不能进行任何类型的更改。您可能还需要查看保护文档的密码,以防止用户再次取消保护
答案 1 :(得分:0)
这应该做你需要的。从Excel测试,而不是Access,因此您需要修复模板路径
Sub Tester()
' Create a Word document from template.
Dim WordApp As Word.Application
Dim strTemplateLocation As String
Dim myVariable As String
myVariable = "TEST!!"
' Specify location of template
strTemplateLocation = ThisWorkbook.Path & "\test.dotx"
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True
.WindowState = wdWindowStateMaximize
.Documents.Add Template:=strTemplateLocation, NewTemplate:=False
' Replace each bookmark with field contents.
.Selection.GoTo what:=wdGoToBookmark, Name:="myBookmark"
.Selection.TypeText myVariable
DoEvents
With .ActiveDocument
.Protect Type:=wdAllowOnlyReading, Password:="blah"
.Saved = True
End With
.Activate
End With
Set WordApp = Nothing
End Sub