Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql MS Access查询出错_Sql_Ms Access_Ms Access 2007 - Fatal编程技术网

Sql MS Access查询出错

Sql MS Access查询出错,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,我对Microsoft Access 2007的查询有问题。我已经开发了一个查询,当我从Access的查询编辑器运行它时,它可以正确运行。我的问题是,我已经在一个报告的VBA代码的字符串文本中,在“打开事件”处理程序中,放置了这个非常相同的查询。我的目的是将此查询分配给该报表的属性RecordSource,从而允许使用我想要的任何查询动态创建报表 当我实际打开并运行报告时,问题就出现了。当事件Open的处理程序完成其执行时,我得到一个错误:您试图执行一个查询,但该查询没有将指定的表达式ID作为聚

我对Microsoft Access 2007的查询有问题。我已经开发了一个查询,当我从Access的查询编辑器运行它时,它可以正确运行。我的问题是,我已经在一个报告的VBA代码的字符串文本中,在“打开事件”处理程序中,放置了这个非常相同的查询。我的目的是将此查询分配给该报表的属性RecordSource,从而允许使用我想要的任何查询动态创建报表

当我实际打开并运行报告时,问题就出现了。当事件Open的处理程序完成其执行时,我得到一个错误:您试图执行一个查询,但该查询没有将指定的表达式ID作为聚合函数的一部分

以下是在VBA代码中针对打开事件处理程序的查询

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。它工作正常。但是运行时的错误还在继续。太棒了!它打印了什么?你应该用它打印的内容更新你的问题好的,我现在正在这么做。