以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Find 条件查找的时候,如果某字段是空值,如何查询呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133983)

--  作者:Hareen时代
--  发布时间:2019/4/24 16:21:00
--  Find 条件查找的时候,如果某字段是空值,如何查询呢?
老师好:
我想用find去条件查找表里面的行,在写条件字段的时候,某些字段的值既有空值又有不是空值的情况、
最后搜索出来的结果就自动的把空值的情况没有找到。

比如现在想在A表和B表之间建立查询,A表和B表都有很多字段是:“维度1” ,“维度2”,“维度3”  ,维度字段里面有的是有数值的,有的是空值

我写代码的时候   datatbles(A).find("维度1 = ‘" & dr("维度1") & "’ and 维度2 = ‘" & dr("维度2") & "’ and 维度3 = ‘" & dr("维度3") & "’ “)

这样在查找出来的结果,只有这三个字段全部有值才能查找出来,如果某个字段没有值,就查找不出来;比如果维度1和维度2都有数值,维度3没有值,这个时候就找不到这一行了
其实遇到这种情况,要是自动能忽略维度3的空值,直接查找维度1和维度2就好了


这个有办法解决嘛?


图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2019/4/24 16:24:00
--  

判断值,合成条件,如

 

Dim filter as string = "1=1"

If dr("维度1") = nothing Then

    filter &= " and 维度1 is null"

Else

    filter &= " and 维度1 = \'" & dr("维度1") & "\'"

End If

If dr("维度2") = nothing Then

    filter &= " and 维度2 is null"

Else

    filter &= " and 维度2 = \'" & dr("维度2") & "\'"

End If

 

msgbox(filter)