sql - Access 2010 中的条件 WHERE 语句

标签 sql ms-access report ms-access-2010 subreport

我在 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,因此我们将不胜感激。

最佳答案

使用LIKEIIF()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/

相关文章:

ms-access - Microsoft Access 2013 长文本限制为 255

java - 按顺序制作测试用例,以便我可以删除 TestNG 中的多个登录调用

c# - 计算报告数据 - C# 通过 Collections 或 SQLite

c# - TableAdapter 配置向导无法识别 sql 语句 "DATE()"

asp.net 成员(member)资格 - sql 身份验证

php - 我需要在 SQL 中进行左联接、自然联接还是简单联接?

sql - CROSS JOIN是没有ON子句的INNER JOIN的同义词吗?

mysql - sql multiple where on join

vba - 编辑 SQL 查询

excel - 如何使用 Access VBA 获取在服务器上打开 (Excel) 文件的用户名?