在我不那么谦虚的意见中,参数在MS Access中处理得不好。
我认为只要运行它(除非它是一个实验性的查询),就不得不在查询中输入值。如果您可以传递参数,那么自动化报告会更容易。
通常情况下,我创建一个没有查询的WHERE子句中的参数的报告,然后在自己的通行证,大干快上Remou's answer here
你也可以打电话之前更改查询在报告中加入where条件它,但这是非常hackey。
- 编辑 -
我看到了混乱。我解释了你在做什么作为报告(而不是表格)。
可能发生的事情是,当它试图呈现/格式化打印作业时,它不得不对表单的记录源进行多次调用。这就是为什么它不断询问你的数据。
从我在你的问题明白了,你有一个查询,看起来像这样:
select foo
from bar
where
yaddah_date between [Start Date] and [End Date]
然后你使用该查询作为您想后打印窗体的记录源作为PDF。首先你应该创建一个类似于这种形式的报告。然后打开报告上有一个过滤器打印:
DoCmd.OpenReport "myReport", , , , _
"yaddah_date between " & txtStartDate & _
" and " & txtEndDate
(最后一部分基本上是过滤器/ where子句该报告将适用于正在生成的数据查询的结果)。
如果必须打印表格,你可以做类似的
DoCmd.OpenForm "foo", acNormal, , _
"yaddah_date between " & txtStartDate & _
" and " & txtEndDate
的东西,也可以设置窗体/子窗体的filter
财产。
谢谢你的回应。我检查了你给出的链接,但我不清楚它会做什么以及在哪里实施。我对实施后端解决方案不太熟悉。你能解释一下吗?谢谢! –