【问题标题】:IIf function inside Access queryAccess 查询中的 IIf 函数
【发布时间】:2010-10-26 03:02:10
【问题描述】:

我有一个查询,我想使用 IIf 函数作为条件的一部分。这是完整的 SQL:

SELECT Hits.HitID, Hits.ListingID, Hits.HitCount, Hits.HitDate, Hits.HitTypeID, Hits.IsDeleted
FROM Hits
WHERE (((Hits.HitDate)>=[Forms]![frmReports]![txtStartDate]) AND ((Hits.IsDeleted)="N"));

这是一段让我痛苦的代码:

>=[Forms]![frmReports]![txtStartDate]

如果我在 frmReports 上有一个日期,这将正常工作;但是,如果没有输入日期,则返回 0 条记录(如果是这种情况,我希望它返回所有记录)。

我怎样才能做到这一点?

【问题讨论】:

    标签: sql ms-access criteria jet iif-function


    【解决方案1】:

    试试这个:

    SELECT Hits.HitID, Hits.ListingID, Hits.HitCount, Hits.HitDate, Hits.HitTypeID, Hits.IsDeleted
    FROM Hits
    WHERE (((Hits.HitDate)>=nz([Forms]![frmReports]![txtStartDate],"1/1/1")) AND ((Hits.IsDeleted)="N"));
    

    或者这个

    SELECT Hits.HitID, Hits.ListingID, Hits.HitCount, Hits.HitDate, Hits.HitTypeID, Hits.IsDeleted
    FROM Hits
    WHERE (((Hits.HitDate)>=[Forms]![frmReports]![txtStartDate]) AND ((Hits.IsDeleted)="N"))
        OR (([Forms]![frmReports]![txtStartDate] = "") AND (Hits.IsDeleted="N"));
    

    【讨论】:

    • 第二个选项不起作用,但第一个确实起作用了!非常感谢!
    • [Forms]![frmReports]![txtStartDate] = "" 应替换为 [Forms]![frmReports]![txtStartDate] Is Null
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多