好的访问 2010 在这里。
我有一个交叉表,我们称之为“TestCrosstab”,它有一个参数来访问它用作参考的查询中的表单控件。它看起来像这样:
PARAMETERS [Forms]![TestForm]![TextDaysPast] Short;
TRANSFORM max(val) AS MaxValue
SELECT col AS Criteria
FROM (SELECT [Date], 'Crosstab Column Name 0' as Col, [Query Column Name 0] as val
FROM TestQuery
UNION ALL
SELECT [Date], 'Crosstab Column Name 1' as Col, [Query Column Name 1] as val
FROM TestQuery
UNION ALL
'... etc ...
)
GROUP BY col
PIVOT [Date];
如上所示,它的源查询称为“TestQuery”,它看起来像这样:
SELECT SourceDatabase.Date,
Count(*) AS [Query Column Name 0],
Sum(IIf(Stuff=Stuff And Stuff=Stuff,1,0)) AS [Query Column Name 1],
'... etc ...
FROM SourceDatabase INNER JOIN SecondDatabase ON SourceDatabase.ID = SecondDatabase.ID
WHERE (((SourceDatabase.Date) Between Date() And Date()-Forms!TestForm!TextDaysPast))
GROUP BY SourceDatabase.Date;
当用户在表单控件“TextDaysPast”中输入一个数字并且您在“弹出窗口”中手动运行查询时,它们都可以很好地工作。
我要做的是将上面的交叉表附加为子表单的源对象,纯粹用于显示目的。在 VBA 中,当用户在“TextDaysPast”中输入一个数字后,会调用这一行以将交叉表附加到子表单:
Me.SubformDisplay.SourceObject = "Query.TestCrosstab"
Me.SubformDisplay.Requery
在“TextDaysPast”中输入数字并使用命令按钮执行查询后,表单似乎可以正常工作(没有错误),但不会显示交叉表。如果我将源查询更改为静态“WHERE”,则交叉表将不再需要“PARAMETERS”,并正常显示为子表单源对象。使用“PARAMETERS”的某些东西不允许显示交叉表。
关于如何解决这个问题的任何想法?将源查询和交叉表组合成一个大怪物可以解决这个问题吗?
谢谢您的意见!