首页 > 解决方案 > 为什么我的 SQL 查询在应该返回的时候没有返回任何记录?

问题描述

我有一个带有一堆 where 子句的选择查询。我测试了几种情况,它们效果很好!但是测试了另一种情况,它没有返回任何应该返回的东西。

在访问中,我使用了“创建查询”功能,我输入了所有相同的值,它返回了 4 条记录,这是预期的!那么,为什么我的查询找不到这些记录?

Set rstV = cdb.OpenRecordset("SELECT * FROM " & tableVName & " WHERE ValveSize IN (" & mVSize & "," & mLineSize & ") AND ValveFamily = '" & confgType & _
    "' AND CV >= " & mCV & " AND NO = 'X'")

当我删除 NO = 'X' 时,它会找到一堆记录(包括我正在寻找的那些),但我需要 NO='X' 以便我可以专门找到这 4 条记录。

我有一种感觉,“X”可能会以某种方式导致问题,但它在其他情况下也有效。我尝试查看列字段属性,一切看起来都很好......

请帮忙!

标签: vbams-access

解决方案


据我记得,YES 和 NO 可能是值,因此请尝试在 NO 周围使用括号:

[NO] = 'X'

推荐阅读