- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个查询用于生成报告,问题是当我运行报告时,三个字段由于某种原因根本不显示任何数据。
查询1:
SELECT ClientSummary.Field3 AS PM,
ClientSummary.[Client Nickname 2] AS [Project #],
ClientSummary.[Client Nickname 1] AS Customer,
ClientSummary.[In Reference To] AS [Job Name],
ClientSummary.Field10 AS Contract,
(select sum([Billable Slip Value])
from Util_bydate as U1
where U1.[Client Nickname 2] = ClientSummary.[Client Nickname 2])
AS [This Week],
(select sum([Billable Slip Value])
from Util as U2
where U2.[Client Nickname 2] = ClientSummary.[Client Nickname 2] )
AS [To Date],
[To Date]/[Contract] AS [% Spent],
0 AS Backlog,
ClientSummary.[Total Slip Fees & Costs] AS Billed,
ClientSummary.Payments AS Paid, ClientSummary.[Total A/R] AS Receivable,
[Forms]![ReportMenu]![StartDate] AS [Start Date],
[Forms]![ReportMenu]![EndDate] AS [End Date]
FROM ClientSummary;
查询2:
SELECT JobManagement_Summary.pm,
JobManagement_Summary.[project #],
JobManagement_Summary.Customer,
JobManagement_Summary.[Job Name],
JobManagement_Summary.Contract,
IIf(IsNull([This Week]),0,[This Week]) AS [N_This Week],
IIf(IsNull([To Date]),0,[To Date]) AS [N_To Date], [% Spent],
JobManagement_Summary.Backlog,
JobManagement_Summary.Billed,
JobManagement_Summary.Paid,
JobManagement_Summary.Receivable,
JobManagement_Summary.[Start Date],
JobManagement_Summary.[End Date]
FROM JobManagement_Summary;
当我从查询 2 运行报告时,这 3 个字段不会出现。 N_This Week、N_To Date 和 % Spend。全部都没有数据。它不是 IIF 函数,因为我是否有这些函数或删除它们并不重要。
有什么想法吗?如果我直接连接到第一个记录集,它工作正常,但 SQL 会抛出错误消息:子查询中不允许使用多级 GROUP BY 原因。
有什么方法可以绕过该消息以直接链接到它,或者有人知道为什么这些字段会返回空白吗?我已经束手无策了!
最佳答案
今天我被同样的问题所困扰,我将在这里记录在我们的案例中解决该问题的步骤。关键是在构建排序和分组中使用的内部 GROUP BY 时,不要允许 Access 采用默认路由。
基本问题
您有一个报表 rptFoo
,其 RecordSource 是查询 qryFoo
。
您已经对 rptFoo
应用了一些排序和分组,这很好。但是 qryFoo 有点复杂;它包含一个子查询。
您将 qryFoo
微调到完美,调整并重新调整其子查询元素,一切看起来都很好,至少当您独立测试查询时是这样。当您启动报告并收到以下错误时,问题就开始了:
Multi-level GROUP BY clause is not allowed in a subquery
这是您提到的问题之一。
解决方案尝试 1:
如果你用谷歌搜索错误,你的第一个结果将是优秀的 Allen Browne site 。他在网站上有一个完整的部分,标题为 Surviving Subqueries 。对于这个特定问题,他的最佳建议是:
因此,您创建了qryFooWrapper
,其内容只是SELECT * FROM qryFoo
。您将其设置为 rptFoo
的记录源,猜猜看,报告开始加载,没有错误。遗憾的是,它也只是显示一个空白字段,而不是原始子查询的结果。
这看起来就像您提到的最初问题,我们似乎陷入了死胡同。
解决方案尝试 2:
那么,把艾伦·布朗的建议放在一边,还有什么可以尝试的呢?那么有this discussion in Google Groups 。最初的建议看起来像是一个巨大的拼凑 - 将一个臭味的 UNION ALL 附加到您的初始查询中。这不可能是答案。
但是等等,线程中途出现了一些启发。 UNION ALL 所做的一切就是强制 Access 重组其生成的内部 GROUP BY 作为报告的一部分。在原始 qryFoo
中插入一个简单的 DISTINCT 将完成相同的工作,而且丑陋程度要低得多。
瞧,解决方案来了。 在原始查询中包含一个简单的 DISTINCT。。没有笨拙的UNION ALL
,没有可怕的qryFooWrapper
,也没有难闻的临时表。
关于ms-access - Access 报告不显示数据或失败并显示 "Multi-level GROUP BY cause not allowed in subquery.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2807595/
我正在尝试编写 Access Access 数据库的脚本,以便在命令行上使用。 Access 数据库使用工作组文件进行保护。 Dim oApp, sWGF,myWS Set sApp = Create
我有一个包含数据表的表格。我希望用户能够选择多行,单击按钮并运行一些 sql 查询并对这些行执行一些工作。 查看我的 VBA 代码,我发现如何使用 CurrentRecord 属性 Access 最后
如果我在某个网络位置有 Microsoft Access 2007 数据库,那么可以使用该数据库的客户端计算机的数量是否有限制?客户端不会安装 Access,而是使用 Access Runtime 2
我正在开发一个注册系统。但我收到此错误:You tried to execute a query that does not include the specified expression.. 我正
我有一个产品设计为使用 MS Access 文件作为数据库的桌面产品。 现在,一些用户需要将它安装在几台 PC(比如说 2 或 3 台)上并共享数据库。 我想将 MS Access 文件放在共享文件夹
我接手了一个旧的软件项目,该项目使用 MS Access 数据库来存储数据。但是数据库不会在 Access 中打开,如下所示: "You do not have the necessary permi
我有一个文件夹,里面装满了 100 多个 Access97 文件。我需要将它们全部更新到 Access2003。 我可以手动完成,但使用 VBA 可能会快很多。 有没有人会有一个片段可以做到这一点?或
我正在通过 SQL Server 迁移助手 (SSMA) 将数据从 Access 数据库迁移到 SQL Server。 Access 应用程序将继续与转换为链接表的本地表一起使用。 一个连续的表单在加
我正在通过 SQL Server 迁移助手 (SSMA) 将数据从 Access 数据库迁移到 SQL Server。 Access 应用程序将继续与转换为链接表的本地表一起使用。 一个连续的表单在加
我的公司用 Visual Basic 6 开发了一个应用程序。 该应用程序通过 ODBC 数据源使用 Access 数据库。 Access 数据库是一个扩展名为“.mdb”的文件。 在以下环境中运行应
我一直在尝试让 Microsoft Access 从主 Access 窗口中“退出”,以便我可以隐藏 Access 窗口并仅在桌面上显示表单,以便可以轻松地将其放置在其他应用程序旁边。 起初我发现了一
我想在 access 2010 中使用 access 2000 和 2003 数据库。由于我不想检查一切是否手动工作,我正在寻找一种工具来分析 VBA 代码以查找使用 access 2010 发生的错
所以我有一个 Excel 工作簿,其中有一个很好的 shaperange 对象的全局 map 。通过一些非常简单的代码,我可以更改颜色、将国家/地区集合分组和取消分组为数组等......并且效果非常好
我们希望有大约 35-40 人通过共享驱动器上的脚本写入 Access 数据库。这些指标分解为他们需要每小时写大约 3-7 次。 Access 会支持这一点而不会对我产生影响吗? 是的,我很乐意将其用
我正在寻找一种使用 VBA 代码从外部数据库文件中删除 VBA 模块的方法。名为“myfile.accdb”的外部文件有一个名为“mod1”的模块,我希望能够在单独的项目中使用 VBA 代码删除该模块
我在 Access 2003 数据库(在 Access 2007 中开发)中有三个表单,它们处于父级 -> 子级 -> 孙子级关系中。在子窗体的 'Form_Load' 子窗体中,我设置了孙子窗体的一
MS Access 2007 存在拒绝在设计模式下显示表单的问题。我可以看到表单的代码(如果我查看显示表单的按钮的事件属性),但我看不到作为 GUI 布局的表单。而且,当我尝试从应用程序的主窗口调用此
我编写了代码,使用 Excel 中的下拉列表提供的标准将两个表连接起来,然后将数据返回到电子表格上的特定位置(工作表上已经有标题)。 这在我的机器上和其他机器上使用 MS Access 的机器上都可以
我正在开始构建一个应用程序,该应用程序从给定的根路径开始遍历文件夹结构,并将所有找到的 Access 1997 .mdb 文件转换为较新的 Access 2007/2010 .accdb 格式。但是,
我有一个表单和一个按钮。我想通过单击按钮打开另一个表单,并将参数从父表单传递到子表单(子表单的 RecordSource 有参数)。我该怎么做? 最佳答案 您可以通过引用表单的对象来引用调用表单的任何
我是一名优秀的程序员,十分优秀!