我在 Access 2010 中有一个子报表,它根据搜索表单中的条件列出了项目。在此表单中,用户可以选择 ProjNo,或将其留空。如果存在 ProjNo,则子报告应仅打印该 ProjNo。如果它是空白的,那么它应该显示所有内容。
我正在尝试设置一个 SQL 来执行此操作。不过,我遇到的问题是,当我尝试搜索所有项目时 - 即。 ProjNo 在搜索表单中留空 - 它只显示第一个项目的信息。
SELECT Index.ProjNo, Index.Year, Index.Route, Index.Area,
Index.[Value], Index.[Updated],
Index.Page, Val(Nz([route],0)) AS routeNum
FROM [Index]
WHERE (((IIf([Activity].[ProjNo]<>"",[Index].[ProjNo]=[Activity].[ProjNo],
[Activity].[ProjNo] IS NULL));
我不太擅长 SQL,因此我们将不胜感激。
最佳答案
使用LIKE
和IIF()
或NZ()
。
示例A:
WHERE ProjNo LIKE IIF(searchProjNo="","*",searchProjNo)
示例 B:
WHERE ProjNo LIKE NZ(searchProjNo,"*")
注意:此方法可以很好地与参数化查询配合使用,用户可以选择查看一条记录、所有记录或记录的子集(例如,使用 123? 或 1* 等通配符)。
关于sql - Access 2010 中的条件 WHERE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149352/