2010-10-26 73 views
0

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

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

我该如何做这项工作?

回答

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

第二个选项没有工作,但第一个确实这样做了!非常感谢你! – Sesame 2010-10-26 03:38:22

+0

'[Forms]![frmReports]![txtStartDate] =“”'应该用'[Forms]![frmReports]![txtStartDate]替换为Null'。 – 2010-10-26 21:14:35