2016-12-07 72 views
0

试图在打开查询以启用输入日期范围(开始和结束)(dd-mm-yyyy)时显示提示以提示提示,以便只有此数据才会出现当查询运行时返回。访问交叉表中的日期范围

目前坐在下面的代码;

TRANSFORM Count(AlphaData.[Invoice]) AS CountOfInvoice 
SELECT AlphaData.[Reason], Count(AlphaData.[Invoice]) AS [Total Of Invoice] 
FROM AlphaData 
WHERE ((AlphaData.[DateRaised]) Between AlphaData.[DateRaised] And AlphaData.[DateRaised]) 
GROUP BY AlphaData.[Reason] 
PIVOT Format([DateRaised],"Short Date"); 

但不能为我的生命得到围绕“MS Access数据库引擎无法识别‘Alphadata [DateRaised:]’作为有效字段名或表达式”的问题。

查询的“WHERE”部分在其他查询中可以工作,但只要它在交叉表中应用时就可以使用。

有什么建议吗?

回答

1

这似乎有点混乱起来。如何:

PARAMETERS 
    [From Date:] DateTime, 
    [To Date:] DateTime; 
TRANSFORM 
    Count(*) AS CountOfInvoice 
SELECT 
    AlphaData.[Reason], 
    Sum(AlphaData.[Invoice]) AS [Total Of Invoice] 
FROM 
    AlphaData 
WHERE 
    AlphaData.[DateRaised] Between [From Date:] And [To Date:] 
GROUP BY 
    AlphaData.[Reason] 
PIVOT 
    Format([DateRaised],"Short Date"); 
+0

像以前一样我的男人你是一个活着的传说。这工作完美。另外,学到了一些东西,很好! – Nik

1

您需要的参数添加到查询:

PARAMETERS [Start Date] DateTime, [End Date] DateTime; 
TRANSFORM Count(AlphaData.Invoice) AS CountOfInvoice 
SELECT AlphaData.Reason, Count(AlphaData.Invoice) AS [Total Of Invoice] 
FROM AlphaData 
WHERE (((AlphaData.DateRaised) Between [Start Date] And [End Date])) 
GROUP BY AlphaData.Reason 
PIVOT Format([DateRaised],"Short Date"); 

注:参数添加为第一行,然后在Between语句中使用)。

如果你使用,你需要寻找的参数选项的图形界面:
enter image description here

,并输入参数对话框:
enter image description here

我并没有意识到这一点会发生在交叉表中,因为您只需键入参数以进行选择查询:

SELECT Invoice, Reason, DateRaised 
FROM AlphaData 
WHERE DateRaised=[Start Date]