使用书签但从表单而不是表或查询访问 Word
Posted
技术标签:
【中文标题】使用书签但从表单而不是表或查询访问 Word【英文标题】:Access to Word using bookmarks but from a Form rather than a tbl or qry 【发布时间】:2020-12-28 02:47:01 【问题描述】:相当新的访问方式,这可能是一种非常奇怪的方式,但情况是这样,我有一个表格,上面有某个经理的信息,例如地址和电子邮件等。我希望能够创建一封信,他们的地址填充在 Word 文档的正确位置,我想我已经走了很远但我遇到了障碍。我不知道如何用表单上的地址填充这个 word 文档,我尝试进行查询,该查询会输出与表单相同的信息,但它不断返回
“运行时错误 3061: 参数太少。预计 1 英寸
现在同样的事情发生了,我去掉了中间人,只在打开记录集命令中放了一条 SQL 语句。
问题出在第 12 行(Starting Set rs = dbs.OpenRecordset...)
感谢您对此提供的任何启发!
Private Sub btnManagerLetter_Click()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim rs As DAO.Recordset
Dim dbs As DAO.Database
Dim address As String
Set dbs = CurrentDb
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open("\\middle\Data\DataBaseWordDocs&Ding\ding\InsCoLtrTemplate.docx")
Set rs = dbs.OpenRecordset("SELECT * FROM tblManagers WHERE (((tblManagers.ManagerRef) Like Me![ManagerRef]))", dbOpenSnapshot)
wdApp.Visible = True
wdDoc.Bookmarks("ManagerName").Range.Text = Nz(rs![Manager Name], "")
address = Nz(rs![Address Line 1], vbNullString)
address = Append(address, Nz(rs![Address Line 2], vbNullString))
address = Append(address, Nz(rs![Town], vbNullString))
address = Append(address, Nz(rs![County], vbNullString))
address = Append(address, Nz(rs![Post Code], vbNullString))
wdDoc.Bookmarks("Address").Range.Text = address
End Sub
【问题讨论】:
【参考方案1】:必须连接Me![ManagerRef]
。不需要所有这些括号。没有通配符的 LIKE 也可能是 = 符号。如果 ManagerRef 是文本类型字段,则需要分隔符。
Set rs = dbs.OpenRecordset("SELECT * FROM tblManagers WHERE ManagerRef ='" & Me![ManagerRef] & "'", dbOpenSnapshot)
否则,了解使用嵌入式参数:How do I use parameters in VBA in the different contexts in Microsoft Access?
【讨论】:
以上是关于使用书签但从表单而不是表或查询访问 Word的主要内容,如果未能解决你的问题,请参考以下文章