首页 文章

搜索Microsoft Access 2013表单查询中的一系列日期

提问于
浏览
0

我正在尝试使用用户可以输入开始日期和结束日期并仅返回这些结果的表单来搜索我的数据库 . 我一直在尝试这些论坛所说的一切,但我得到的结果是除了我想要的范围之外的一切 . 所有数据都被省略了 .

我尝试切换开始/结束日期字段,但这不起作用 .

以下是我现在所得到的相反结果:

Like "*" & (([uut_result].[START_DATE_TIME]) Between [Forms]![TestFormResults]![StartDateTime] And [Forms]![TestFormResults]![EndDateTime]) & "*"

1 回答

  • 3
    WHERE (([uut_result].[START_DATE_TIME]) 
    Between [Forms]![TestFormResults]![StartDateTime] 
    And 
    IIF([Forms]![TestFormResults]![EndDateTime] Is Null, Date(), [Forms]![TestFormResults]![EndDateTime])
    

    IIF() 的作用是评估一个条件,即 EndDateTime = Null . 如果是Null,又名 IsNull(EndDateTime) = True ,那么它返回值if if piece,这将是今天的日期 . 如果 IsNull(EndDateTime) = False ,表示该控件中有一个日期,它将返回false(如果为false),在本例中为 [Forms]![TestFormResults]![EndDateTime] .

    * 在SQL中是wildcard . 它用于查找搜索条件组合的变体 .

    SELECT [Fields]
    FROM [Table]
    WHERE ((YourDateField) BETWEEN #[First date]# AND #[Second date]#)
    

    这是假设您的字段名称被正确引用 . 此 # 标志适用于硬编码日期 . 使用表单控件引用不需要它们(您的日期语法很好 . )

相关问题