以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  多列中有空值Find代码问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118954)

--  作者:benwong2013
--  发布时间:2018/5/15 8:45:00
--  多列中有空值Find代码问题

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

如上图,需要通过列 物料类别/物料名称/品牌/规格/等级/单位 六个条件来查询表A是否有存在一样的数据,但其中物料类别/物料名称/单位为非空,其它三列有可能存在空值,请问有没有比较简单的代码来实现;

--  作者:有点甜
--  发布时间:2018/5/15 8:50:00
--  

参考代码

 

Dim Filter As String = "1=1"

If 值1 = Nothing Then

    Filter &= " and 第一列 is null"

Else

    Filter &= " and 第一列 = \'" & 值1 & "\'"

End If

If 值2 = Nothing Then

    Filter &= " and 第二列 is null"

Else

    Filter &= " and 第二列 = \'" & 值2 & "\'"

End If


--  作者:benwong2013
--  发布时间:2018/5/15 9:05:00
--  
    Dim Filter As String = "物料类别 = \'" & r("物料类别") & "\' And 物料名称 = \'" & r("物料名称") & "\' And 单位 = \'" & r("单位") & "\'"
    If r("品牌") = Nothing Then
        Filter & = "And r("品牌") Is Null"
    Else
        Filter & = "And 品牌 = \'" & r("品牌") & "\'"
    End If
    If r("规格") = Nothing Then
        Filter & = "And r("规格") Is Null"
    Else
        Filter & = "And 规格 = \'" & r("规格") & "\'"
    End If
    If r("等级") = Nothing Then
        Filter & = "And r("等级") Is Null"
    Else
        Filter & = "And 等级 = \'" & r("等级") & "\'"
    End If

提示 Filter & = "And r("品牌") Is Null" 语法错误

--  作者:有点甜
--  发布时间:2018/5/15 9:10:00
--  
    Dim Filter As String = "物料类别 = \'" & r("物料类别") & "\' And 物料名称 = \'" & r("物料名称") & "\' And 单位 = \'" & r("单位") & "\' "
    If r("品牌") = Nothing Then
        Filter & = " And 品牌 Is Null"
    Else
        Filter & = " And 品牌 = \'" & r("品牌") & "\'"
    End If
    If r("规格") = Nothing Then
        Filter & = " And 规格 Is Null"
    Else
        Filter & = " And 规格 = \'" & r("规格") & "\'"
    End If
    If r("等级") = Nothing Then
        Filter & = " And 等级 Is Null"
    Else
        Filter & = " And 等级 = \'" & r("等级") & "\'"
    End If