我有一个word文档,它使用邮件合并功能并从访问数据库中获取其信息。当我使用此代码时,它不会打开包含当前信息的word文档。它会打开包含最后保存信息的word文档。
如果我自己打开word文档,从任务栏中询问我是否要运行SQL,然后单击yes并且一切正常运行。我想从访问中单击一个按钮来完成同样的任务来打开合同。
以下是我使用的代码:
Private Sub Command205_Click()
Dim LWordDoc As String
Dim oApp As Object
'Path to the word document
LWordDoc = "C:\Users\.....k Up\01- Proposal\contract.docx"
If Dir(LWordDoc) = "" Then
MsgBox "Document not found."
Else
'Create an instance of MS Word
Set oApp = CreateObject(Class:="Word.Application")
oApp.Visible = True
'Open the Document
oApp.Documents.Open FileName:=LWordDoc
End If
End Sub
***我应该补充一点,我不是编码员,对VBA一无所知,我从这个网站上复制了这个,所以你能提供的任何帮助都将不胜感激。如果你能为我提供编码或足够的指导,让我在路上会很棒。谢谢
答案 0 :(得分:2)
此代码将在Access中运行以打开邮件合并文档并更新内容并保存。
使用我最初发布的链接(http://www.minnesotaithub.com/2015/11/automatic-mail-merge-with-vba-and-access/),我做了一些修改,并且能够使代码生效。
我需要添加:ReadOnly:= True,_以防止共享冲突 然后我更改了源数据的表名。
请注意!您需要更改标有“###”的索引,如下所示:
### - 1更改以指定模板的完整路径!!!
### - 2更改SQLSTATEMENT以指定您的记录源!!!
将此代码粘贴到表单中,确保您有一个命令按钮单击执行的事件(在此代码中重命名为“Command205”,或更改您的控件名称)。
Revive.find({})
.populate( 'author' )
.exec( function( error, docs ) {
console.log( docs ); // will have `[{author:{profile:{...}}}]` data
} );