在Access参数查询中打印参数

时间:2011-07-21 18:12:32

标签: ms-access parameters

我正在根据以日期范围作为参数的查询开发Access报告, 像这样

Between [Enter Start Date (mm/dd/yyyy)] And [Enter End Date (mm/dd/yyyy)]

如何在报告中包含为开始日期和结束日期输入的值?

提前致谢。

GRB

2 个答案:

答案 0 :(得分:0)

您必须使用Where子句中的确切名称在查询中选择输入值作为列。

您的查询可能如下所示:

select 
    Column1,
    Column2,
    DateColumn
from
    MyTable
where
    DateColumn between [Enter Start Date (mm/dd/yyyy)]
    and [Enter End Date (mm/dd/yyyy)]

要在查询中包含输入值,您必须更改查询,如下所示:

select 
    Column1, 
    Column2, 
    DateColumn, 
    [Enter Start Date (mm/dd/yyyy)] as StartDate, 
    [Enter End Date (mm/dd/yyyy)] as EndDate
from 
    MyTable
where 
    DateColumn between [Enter Start Date (mm/dd/yyyy)] 
    and [Enter End Date (mm/dd/yyyy)]

您可以使用输入值所需的任何别名(我使用StartDateEndDate),只要实际的列名称为[Enter Start Date (mm/dd/yyyy)][Enter End Date (mm/dd/yyyy)]完全相同。

当然这意味着查询将包含每行中的输入值,但您不需要在报告的每一行中显示它们。
只需将StartDateEndDate绑定的字段放在报表的页眉或页脚中,这些值只会在报表中显示一次。

答案 1 :(得分:0)

DoCmd.OpenReport有一些额外的过滤器参数,一个where子句,最重要的是OpenArgs。在报告加载事件期间,您可以捕获这些参数以自定义报告的数据源(EG:可供选择的范围),并将报告上的标签值设置为打开报告之前提供的输入。

http://msdn.microsoft.com/en-us/library/bb238032%28v=office.12%29.aspx提供了此功能的概述。

我设想了一个表单,用户从中选择日期范围并点击确定。调用报告以通过按钮单击事件打开,并通过OpenArgs传递日期范围(在该端验证后)。

此外,您可以使用重载来设置where / filter参数中的日期范围,并将完整的日期范围传递给OpenArgs,例如“1月1日 - 1月31日”,并将其分配给标签的Label.Text在报告上