2010-02-12 60 views
0

当查询是这样就没有问题问题采用的形式引用时变换/透视查询

这工作:

TRANSFORM Count(Aktivitet.ID) AS AntalförID 
SELECT Aktivitet.region, Sum(Aktivitet.antalMän) AS [Antal Män], Sum(Aktivitet.antalKvinnor) AS [Antal Kvinnor] 
FROM Aktivitet 
GROUP BY Aktivitet.region 
PIVOT Aktivitet.aktivitetstyp 

但是,当我加入这行我惹上麻烦:

WHERE Aktivitet.datum > Forms!Sök!aktivitetFrånDatum 

此不起作用:

TRANSFORM Count(Aktivitet.ID) AS AntalförID 
SELECT Aktivitet.region, Sum(Aktivitet.antalMän) AS [Antal Män], Sum(Aktivitet.antalKvinnor) AS [Antal Kvinnor] 
FROM Aktivitet 
WHERE Aktivitet.datum > Forms!Sök!aktivitetFrånDatum 
GROUP BY Aktivitet.region 
PIVOT Aktivitet.aktivitetstyp 

而我不知道为什么,Forms!Sök!aktivitetFrånDatum在简单的SELECT查询中工作得很好,如果我在TRANSFORM/PIVOT查询中将Forms!Sök!aktivitetFrånDatum更改为2000-01-01,它的工作原理如下。

我得到的错误是在瑞典,但它说:“这是无法识别表单索aktivitetFrånDatum为有效字段名或表达式!”提前

谢谢!

+0

您不指定运行此SQL语句的上下文。如果它在代码中,则需要在执行SQL字符串之前解析表单参考。 – 2010-02-12 19:12:35

回答

2

如果您想引用表单,则必须使用参数。

像这样:

PARAMETERS Forms!Sök!aktivitetFrånDatum DateTime; 
TRANSFORM Count(Aktivitet.ID) AS AntalförID 
SELECT Aktivitet.region, Sum(Aktivitet.antalMän) AS [Antal Män], Sum(Aktivitet.antalKvinnor) AS [Antal Kvinnor] 
FROM Aktivitet 
WHERE Aktivitet.datum > Forms!Sök!aktivitetFrånDatum 
GROUP BY Aktivitet.region 
PIVOT Aktivitet.aktivitetstyp 

正如你所看到的,我在一个数据类型猜测:

PARAMETERS Forms!Sök!aktivitetFrånDatum DateTime; 
1

看一看

Handle parameters

参数请勿使用交叉表 查询,除非你: a)声明参数,或 b)指定列标题。

要声明该参数,请在查询菜单上选择 参数。访问 打开一个对话框。输入名称和 指定数据类型。