Ms access querydefs运行时错误3265:在此集合中找不到项

Ms access querydefs运行时错误3265:在此集合中找不到项,ms-access,vba,dao,Ms Access,Vba,Dao,在Access 2007中,我试图发送查询结果,但是,我一直收到错误“运行时错误‘3265’:此集合中找不到项”。该行出现错误: Set qry = CurrentDb.QueryDefs(ReportQueryName) 我已经检查了字段上的拼写,并尝试使用工具>引用来确保我有正确的库 这是我当前的代码: Private Sub Command202_Click() Dim qry As DAO.QueryDef Dim strSQL As String Dim ReportQueryNa

在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
创建新查询-必须使用
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
有时,您的新查询不会立即显示在访问窗口中

如果需要,您可以使用:

Application.RefreshDatabaseWindow

在运行此过程之前,查询是否存在,或者您是否正在尝试创建它?在运行此代码之前,查询不存在。在这种情况下,QueryDefs报告错误是完全正确的!看看我的答案如何做,它说我不能放弃投票,因为我还没有足够的信誉。我会尽量记得回来的。别担心,很高兴我能帮上忙@MarkButler您设置了
qry
但没有使用它。我得到了错误3075,查询“field=value”中缺少运算符(语法错误)。我有一个字符串值。引用没有帮助。我已经很久没有熟练使用VBA了,但是“Set…”行创建了新的查询,将其命名为“ReportEmail”,并使用strSQL进行构建。