Sql MS Access查询出错
我对Microsoft Access 2007的查询有问题。我已经开发了一个查询,当我从Access的查询编辑器运行它时,它可以正确运行。我的问题是,我已经在一个报告的VBA代码的字符串文本中,在“打开事件”处理程序中,放置了这个非常相同的查询。我的目的是将此查询分配给该报表的属性RecordSource,从而允许使用我想要的任何查询动态创建报表 当我实际打开并运行报告时,问题就出现了。当事件Open的处理程序完成其执行时,我得到一个错误:您试图执行一个查询,但该查询没有将指定的表达式ID作为聚合函数的一部分 以下是在VBA代码中针对打开事件处理程序的查询Sql MS Access查询出错,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,我对Microsoft Access 2007的查询有问题。我已经开发了一个查询,当我从Access的查询编辑器运行它时,它可以正确运行。我的问题是,我已经在一个报告的VBA代码的字符串文本中,在“打开事件”处理程序中,放置了这个非常相同的查询。我的目的是将此查询分配给该报表的属性RecordSource,从而允许使用我想要的任何查询动态创建报表 当我实际打开并运行报告时,问题就出现了。当事件Open的处理程序完成其执行时,我得到一个错误:您试图执行一个查询,但该查询没有将指定的表达式ID作为聚
Private Sub Report_Open(Cancel As Integer)
Dim Query As String
Dim WhereClause As String
WhereClause = [Forms]![Main Form]!
[WindowPrintOptions]![CustomizedReport]![txtResponsibility]
Query = "SELECT AllInfo.*
FROM (SELECT i.ID,
i.[Number],
i.Responsability.Value AS Responsability
FROM tbl_Projects AS p RIGHT JOIN
((tb_Items AS i LEFT JOIN tb_F_projects AS fp
ON i.ProjectID = fp.Id) LEFT JOIN
tb_items_comments AS ic ON ic.ItemID = i.ID)
ON i.ProjectID = p.Id WHERE ( (i.Status = 'Status 1')
AND (i.DateOpened >= #9/9/2014#) AND
(i.DateOpened <= #9/11/2014#) AND
(i.DueDate >= #9/12/2014#) AND (i.DueDate <= #9/12/2014#)
AND (i.Category = 'C1') AND (i.Deliverables LIKE '*'
& 'dates' & '*') AND (i.Responsability.Value = 'Some name')
) ) AS AllInfo"
Me.RecordSource = Query
End Sub
注意,我还没有使用where子句。它将随后插入到查询中。我只是为了单独测试查询而删除了它,并检查它是否正常,没有任何更改,但发现它实际上不正常。所以,请记住:当我从MS Access query builder运行这个查询时,它确实可以工作,但在这里不是动态运行的。可能有什么问题?在查询中设置断点时会发生什么情况?另外,在查询之后,键入Debug.Print查询并用输出更新您的问题。@inventanimate,我做到了。Print查询调用打印了我插入的查询。我复制了它并粘贴到查询生成器中,然后单击run。它工作正常。但是运行时的错误还在继续。太棒了!它打印了什么?你应该用它打印的内容更新你的问题好的,我现在正在这么做。