MS Access / SQL - 一次将时间条件应用于多个查询

时间:2011-06-29 13:04:15

标签: sql ms-access ms-access-2007

我有300多个查询从我的数据库中获取信息。现在,查询中没有指定时间条件,所以如果我想在一段时间内过滤所有这些条件,即在#07/01/2009#和#08/01/2009#之间,我将不得不手动进入每个查询并添加此条件。

我的所有查询都将数据填充到4个主要报告中。我想要做的是立即对我的所有查询应用如上所述的时间过滤条件,以便我可以创建每周报告,以及总计报告(这意味着没有时间条件)。 / p>

在提取我的报告之前,是否有任何简单的方法可以添加单个参数,以便立即过滤所有查询,如果参数字段为空,则可以拉出总计报告?

1 个答案:

答案 0 :(得分:1)

您可以在查询的WHERE子句中使用对表单控件的引用。因此,例如,如果我有一个名为frmDatePicker的打开表单,其中包含一个名为txtStartdate的文本框控件,我可以将该控件的值用作WHERE条件。

SELECT *
FROM MyTable
WHERE my_date_field >= Forms!frmDatePicker!txtStartDate;

这种方法可行,但我不知道它是否适合您的情况。您必须修改包含该日期条件的所有查询。这可能是一次性的改变。但是,如果您更改了表单和/或控件名称,则需要再次修改查询。 (所以尽量不这样做!)

编辑:如果您希望允许用户将txtStartDate留空,以便根本不在该日期过滤,请尝试这样的WHERE子句:

WHERE
    my_date_field >= Forms!frmDatePicker!txtStartDate
    Or Forms!frmDatePicker!txtStartDate Is Null;