Ms access 子窗体内部的MS Access参数查询赢得';t打印

Ms access 子窗体内部的MS Access参数查询赢得';t打印,ms-access,ms-access-2010,Ms Access,Ms Access 2010,以下是我所做的: 我创建了一个参数查询,其中一个crtiteria介于[Start Date]和[End Date]之间。然后,我将该参数查询与其他绑定字段放在一起,并创建了一个子表单。到目前为止,没有问题,效果很好 但我在打印或试图将表单转换为PDF时遇到了问题。例如,当我要求打印时,参数查询中的弹出窗口将再次弹出询问日期,即使在我输入日期后(再次),它仍会多次询问我并取消打印作业 当我试图打印屏幕上的内容时,如何防止查询基本上运行?如果我试图创建PDF,也会发生同样的情况。在我看来,MS A

以下是我所做的:

我创建了一个参数查询,其中一个crtiteria介于[Start Date]和[End Date]之间。然后,我将该参数查询与其他绑定字段放在一起,并创建了一个子表单。到目前为止,没有问题,效果很好

但我在打印或试图将表单转换为PDF时遇到了问题。例如,当我要求打印时,参数查询中的弹出窗口将再次弹出询问日期,即使在我输入日期后(再次),它仍会多次询问我并取消打印作业


当我试图打印屏幕上的内容时,如何防止查询基本上运行?如果我试图创建PDF,也会发生同样的情况。

在我看来,MS Access中的参数处理不好

我认为无论何时运行查询(除非是一次性实验查询),都必须在查询中输入值是错误的。如果您只需传递参数,那么自动生成这样的报告会容易得多

通常,我在查询的where子句中创建一个没有参数的报告,然后传入您自己添加的where条件

您也可以在调用报表之前更改报表中的查询,但这相当麻烦

--编辑--

我看到了混乱。我把你所做的解释为一份报告(不是表格)

可能发生的情况是,当它尝试呈现/格式化打印作业时,它必须多次调用表单的记录源。这就是为什么它一直要求你提供这些数据

根据我对你问题的理解,你有一个如下的查询:

select foo 
from bar 
where 
    yaddah_date between [Start Date] and [End Date]
然后,您将该查询用作表单的记录源,您将尝试稍后以PDF格式打印该表单。首先,您可能应该创建一个类似于表单的报告。然后打开报告并使用过滤器进行打印:

DoCmd.OpenReport "myReport", , , , _
                    "yaddah_date between " & txtStartDate & _
                        " and " & txtEndDate
(最后一部分基本上是filter/where子句,报告将应用于生成其数据的查询结果)

如果必须打印表单,可以执行类似操作

DoCmd.OpenForm "foo", acNormal, , _
                "yaddah_date between " & txtStartDate & _
                    " and " & txtEndDate

或者,您可以设置表单/子表单的
过滤器
属性。

谢谢您的回复。我查看了您提供的链接,但我有点不清楚这将做什么,以及在哪里实现它。我对实现后端解决方案不太熟悉。你能解释一下吗?非常感谢。