问题描述
这是一种全新的访问方式,可能是一种很奇怪的处理方式,但是在这种情况下,我有一个表格,上面有某些经理的信息,例如地址和电子邮件等。我希望能够创建在Word文档的正确位置填充了一封其地址正确的信件,我想我还很遥远,但我遇到了障碍。我不知道如何用表格上的地址填充这个Word文档,我尝试进行查询以显示与表格相同的信息,但它始终返回
“运行时错误3061: 参数太少。预期为1英寸
现在,当我切掉中间人并将一个SQL语句放入open recordset命令中时,同样的事情正在发生。
问题出在第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],Nz(rs![County],Nz(rs![Post Code],vbNullString))
wdDoc.Bookmarks("Address").Range.Text = address
End Sub
解决方法
必须串联ActiveMQException.TRANSACTION_ROLLED_BACK
。不需要所有这些括号。没有通配符的LIKE也可能是=符号。如果ManagerRef是文本类型字段,则需要定界符。
Me![ManagerRef]
否则,请了解有关使用嵌入式参数的信息:
How do I use parameters in VBA in the different contexts in Microsoft Access?