我有3个子报告基于它们各自的联合查询(上个月,当月和下个月),并且都具有相同的2个参数(月和年)。当我将3个子报表放在整个报表上时,我必须输入3次每个参数。有没有办法实现它所以我只需要输入一次月份和年份,并且能够传递给其他参数?最好没有视觉基础,因为其他将使用它的人对编码知之甚少......
干杯配偶并提前致谢。
答案 0 :(得分:0)
您可能有像
这样的查询$stmt
URISyntaxException
显示在弹出对话框中的内容。 Access要求这样做,因为它不是列的名称,并且无法将其解析为控件,并且您没有提供值(您可以通过VBA执行此操作。稍微强一些,因为它让我们指定未绑定到特定表单的参数。也可以从外部调用Access)
但您可以引用控件。因此,让我们说打开报告的表单称为Select *
From SomeTable ST
Where ST.aColumn = YourParameter
,然后您可以在表单上设置一个名为YourParameter
的文本框(您在点击按钮后但在打开报告之前验证) 。现在您的查询看起来像这样
ReportOpener
这仅在表格txtParameter
已打开时才有效,否则您将获得相同的弹出窗口。对每个参数重复相同的逻辑。
您可以在查询中隐藏一个默认为Select *
From SomeTable ST
Where ST.aColumn = Forms!ReportOpener!txtParameter
的隐藏文本框
ReportOpener
例如,今天的日期是=Date()
,这是Select *
From SomeTable ST
Where ST.aDateColumn >= DateSerial(Year(Forms!ReportOpener!txtParameter), Month(Forms!ReportOpener!txtParameter) - 1, 1)
and ST.aDateColumn < DateSerial(Year(Forms!ReportOpener!txtParameter), Month(Forms!ReportOpener!txtParameter) +2 1, 1)
的值,这意味着
6/28/2016
和
Date()
您的日期列是否受
限制DateSerial(Year(Date), Month(Date) - 1, 1) = 5/1/2016
这是上个月,本月和下个月。
尽管此参数可以完全由DateSerial(Year(Date), Month(Date) + 2, 1) = 8/1/2016
替换,但仍然可以使用参数,因为这样您可以更改您正在查看的3个月间隔。