IIf函数内部的Access查询

时间:2010-10-26 03:02:10

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

我有一个查询,我想使用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条记录(我希望它返回所有记录,如果是这种情况)。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

试试这个:

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"));