使用表单在日期范围上运行查询

时间:2013-04-11 16:36:20

标签: ms-access ms-access-2007

我有一个MS-Access数据库,它从带有6个工作表的Excel文件中提取信息,因此我得到了6个表。我创建了7个查询,所有查询都使用excel数据创建表,其中6个查询项目,即:

SELECT DISTINCT DISPLAYNAME, COUNT(DISPLAYNAME)
FROM [TXFR REC]
GROUP BY DISPLAYNAME

第7个查询通过在其中一个表上使用左连接将这6个表一起拉到一个报表中,其中所有其他表的连接都是DISPLAYNAME。

我创建了一个Form,其中包含4个按钮和两个日期框,一个开始日期和一个结束日期。我想做的是以下几点:

  1. 选择开始日期
  2. 选择结束日期
  3. 通过调用步骤1和2中的日期范围,按照我指定的顺序按下按钮运行7个查询**这就是我在哪里发飙:我不知道如何强制查询这个日期范围** < / LI>
  4. 运行报告
  5. 导出报告
  6. 关闭表单
  7. 日期框设置为“常规日期”,用于它们的方法是GetDates,因此您只需单击该框,弹出日历即可选择日期。

    我确实在这里看到了这篇文章,但我没有关注到: Date Range Form

    以下是用户建议的测试查询中的文字以及答疑人建议的格式:

    SELECT [NO ADMITTING DX (HEALTH ISSUE)].PHYSICIANDISPLAYNAME, Count([NO ADMITTING DX (HEALTH ISSUE)].PHYSICIANDISPLAYNAME) AS CountOfPHYSICIANDISPLAYNAME INTO NO_ADMIT_DX_COUNT
    FROM [NO ADMITTING DX (HEALTH ISSUE)]
    WHERE ((([NO ADMITTING DX (HEALTH ISSUE)].PHYSICIANDISPLAYNAME) Is Not Null) And (([NO ADMITTING DX (HEALTH ISSUE)].AdmitDtm) Between Forms!PRINT_REPORT![START DATE] And FORMS!PRINT_REPORT![END DATE]))
    GROUP BY [NO ADMITTING DX (HEALTH ISSUE)].PHYSICIANDISPLAYNAME;
    

    **此查询现在可以正常运行**

    感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

对于您的查询,请使用类似的内容。

   SELECT  DISPLAYNAME, COUNT(DISPLAYNAME)
 FROM [TXFR REC] 
  WHERE [TXFR REC].yourDate BETWEEN [Forms]![yourFormName]![yourStartDate] 
      AND [Forms]![yourFormName]![yourEndDateField]
GROUP BY DISPLAYNAME

您希望依赖日期范围的所有查询都应具有这些参数。这样做的好处是,您可以在表单上为datePicker提供两个日期字段。如果你做了这样的事情,它仍然会起作用:

    SELECT  DISPLAYNAME, COUNT(DISPLAYNAME)
 FROM [TXFR REC] 
  WHERE [TXFR REC].yourDate BETWEEN [Please Enter a Start Date]
      AND [Please Enter an Ending Date]
GROUP BY DISPLAYNAME

但这是所有的偏好。只需在那里按一个按钮,然后转到向导中的Misc,如果需要,选择run query

答案 1 :(得分:1)

编辑您的查询以依赖where子句中的表单值:

[Forms]![ 表单的名称 ]![ 表单的控件 ]

这是Screenshot example

但是,这将使您的查询仅适用于表单。您可以考虑复制查询,重命名和编辑副本以反映其限制。