首页 > 解决方案 > MS Access SQL 图表问题/图表消失

问题描述

只要正确打开StartDate1EndDate1填充了警报表单,我的查询就可以正常工作:

查询:AllAlarms

SELECT Table1.FtStageCd, Table1.Date,  Table1.OutAl
FROM Table1
WHERE (((Table1.Date) Between [Forms]![Alarms]![StartDate1] And [Forms]![Alarms]![EndDate1])) 
ORDER BY Table1.Date;

当我使用 MS Access 图表向导使用上述查询作为其行源在 MS Access 中创建图表时,在我选择图例之前都可以。当我在设计模式和表单/报告模式中选择图例时,它会变成空白。没有图例(系列),它加载得很好。

当我"WHERE (((Table1.Date) Between [Forms]![Alarms]![StartDate1] And [Forms]![Alarms]![EndDate1]))"从上面的查询中删除时,图表会正常显示数据(未按我想要的方式排序,但会显示数据)。

我尝试使用与“警报”表单分开的图表生成一个单独的报告,然后首先加载“警报”表单 - 填充“StardDate1”和“EndDate1”,这个单独的隔离表单仍然不起作用(暗示它不起作用)听起来像是时间问题)。

以下是图表的行源供参考:

TRANSFORM Sum([AllAlarms].[OutAl]) AS SumOfOutAl
SELECT [AllAlarms].[Date]
FROM [AllAlarms]
GROUP BY [AllAlarms].[Date]
ORDER BY [AllAlarms].[Date]
PIVOT [AllAlarms].[FtStageCd];

我尝试了其他方法,例如创建图表并在 VBA 中更改它,但没有发现任何可用于编辑的属性(尝试以不同的方式应用日期范围 - 无法覆盖访问图表轴)。我试过不使用 Access 2016 图表向导,但我根本无法显示任何图表 - 可能是我没有加载正确的参考?

标签: sqlvbams-access

解决方案


我很惊讶 CROSSTAB 的工作原理。AFAIK,当任何有助于 CROSSTAB 或 CROSSTAB 本身的查询中涉及动态标准时,必须有一个 PARAMETERS 子句或 CROSSTAB 必须指定列标题。查看http://allenbrowne.com/ser-67.html#Param


推荐阅读