Vba 为什么我的SQL查询在应该返回的时候不返回任何记录?

Vba 为什么我的SQL查询在应该返回的时候不返回任何记录?,vba,ms-access,Vba,Ms Access,我有一个select查询,其中包含一组where子句。我测试了两种情况,效果非常好!但是测试了另一种情况,它没有在应该返回的时候返回任何内容 在access中,我使用了“创建查询”功能,我输入了所有相同的值,它返回了4条记录,这就是它所期望的!那么,为什么我的查询无法找到这些记录呢 Set rstV = cdb.OpenRecordset("SELECT * FROM " & tableVName & " WHERE ValveSize IN (" & mVSize &a

我有一个select查询,其中包含一组where子句。我测试了两种情况,效果非常好!但是测试了另一种情况,它没有在应该返回的时候返回任何内容

在access中,我使用了“创建查询”功能,我输入了所有相同的值,它返回了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”可能是如何引起这个问题的,但它在其他情况下起作用。我试着查看列字段属性,结果都很好


请帮忙

据我回忆,YES和NO可能是值,所以尝试在NO周围使用括号:

[NO] = 'X'

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

[NO] = 'X'

您是否对此查询进行了简化<代码>从表中选择*以确认您的可疑问题原因标准没有问题?您的查询有很多变量,我们无法看到您的数据样本,因此很难判断是什么导致了它。您好@ChanceFinley是的,我尝试过,但实际上它没有返回任何内容。。。这就是为什么我检查了该特定表的字段属性,并且所有内容都与其他2个表相同。此外,NO列要么有一个空白记录,要么有一个X,但是为什么它对其他表有效,而对这个表无效……您是否对此查询进行了简化<代码>从表中选择*以确认您的可疑问题原因标准没有问题?您的查询有很多变量,我们无法看到您的数据样本,因此很难判断是什么导致了它。您好@ChanceFinley是的,我尝试过,但实际上它没有返回任何内容。。。这就是为什么我检查了该特定表的字段属性,并且所有内容都与其他2个表相同。此外,NO列要么有一个空白记录,要么有一个X,但是为什么它对其他表有效,而对这个表无效…@这可能是问题所在。MS Access可以使用这些作为受保护的字,考虑到Access的真/假,实际上是1或0/是或no@Ants这可能就是问题所在。MS Access可以使用这些作为受保护的字,考虑到Access的真/假,实际上是1或0/是或否