querydefs 运行时错误 3265:在此集合中找不到项目
Posted
技术标签:
【中文标题】querydefs 运行时错误 3265:在此集合中找不到项目【英文标题】:querydefs run-time error 3265: item not found in this collection 【发布时间】:2015-10-26 10:20:48 【问题描述】:在 Access 2007 中,我尝试发送查询结果,但是,我不断收到错误消息“运行时错误 '3265':在此集合中找不到项目。”错误即将上线:
Set qry = CurrentDb.QueryDefs(ReportQueryName)
我检查了字段的拼写,并尝试弄乱工具>参考以确保我拥有正确的库。
这是我当前的代码:
Private Sub Command202_Click()
Dim qry As DAO.QueryDef
Dim strSQL As String
Dim ReportQueryName As String
ReportQueryName = "ReportEmail"
Set qry = CurrentDb.QueryDefs(ReportQueryName)
strSQL = "SELECT [ID], [title] FROM Cases WHERE ID = " & Me.ID
qry.SQL = strSQL
DoCmd.SendObject acSendQuery, "ReportEmail", acFormatXLSX, "email@address.com", ..., , False
End Sub
【问题讨论】:
在您运行此过程之前查询是否存在,或者您是否正在尝试创建它? 此代码运行前查询不存在。 这样的话QueryDefs报错是完全正确的!请参阅我的答案以了解如何操作 【参考方案1】:您不能使用 QueryDefs
创建新查询 - 您必须改用 CreateQueryDef
:
Private Sub Command202_Click()
Dim qry As DAO.QueryDef
Dim strSQL As String
Dim ReportQueryName As String
ReportQueryName = "ReportEmail"
strSQL = "SELECT [ID], [title] FROM Cases WHERE ID = " & Me.ID
Set qry = CurrentDb.CreateQueryDef(ReportQueryName,strSQL)
DoCmd.SendObject acSendQuery, "ReportEmail", acFormatXLSX, _
"email@address.com", ..., , False
End Sub
有时您的新查询不会立即显示在 Access 窗口中。
如果你愿意,你可以使用:
Application.RefreshDatabaseWindow
【讨论】:
它说我不能给它投票,因为我还没有足够的信誉。我会尽量记住当我回来的时候。 别担心,很高兴我能帮上忙! @MarkButler 你设置了qry
并且不要使用它。
我收到错误 3075,查询“field=value”中缺少运算符(语法错误)。我有一个字符串值。引用没有帮助。
我已经很久没有精通VBA了,但是“Set...”行创建了新查询,将其命名为“ReportEmail”并使用strSQL构建它。以上是关于querydefs 运行时错误 3265:在此集合中找不到项目的主要内容,如果未能解决你的问题,请参考以下文章
在此代码中获取运行时错误退出代码 1,它提供正确的输出并且在内存和时间限制内