Foxtable(狐表)用户栏目专家坐堂 → [求助]find空值


  共有1652人关注过本帖树形打印复制链接

主题:[求助]find空值

帅哥哟,离线,有人找我吗?
whyxd
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
[求助]find空值  发帖心情 Post By:2016/6/1 11:58:00 [只看该作者]

使用find查找的内容,有的时候可能是空值,这样系统会保存,大神请赐教。

例如:d = DataTables("销售明细单").Find("[产品名称] = '" & Tables("销售任务").current("产品名称") & "' and  [保质期] = '" & Tables("销售任务").current("保质期") & "'"),有的产品保质期是空值,这样执行的时候就会报错。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/1 12:01:00 [只看该作者]

Dim fdr As DataRow

If Tables("销售任务").current.IsNull("保质期") Then

    fdr = DataTables("销售明细单").Find("[产品名称] = '" & Tables("销售任务").current("产品名称") & "' and 保质期 is Null")

Else

    fdr = DataTables("销售明细单").Find("[产品名称] = '" & Tables("销售任务").current("产品名称") & "' and  [保质期] = '" & Tables("销售任务").current("保质期") & "'")

End If

 

If fdr IsNot Nothing Then

    msgbox("找到了")

End If

[此贴子已经被作者于2016/6/1 12:01:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
whyxd
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:204 积分:1904 威望:0 精华:0 注册:2016/2/17 12:11:00
  发帖心情 Post By:2016/6/1 12:06:00 [只看该作者]

多谢老师,有一个问题就是,我实际上find的列有9个,其中有6个都有可能为空值,这样的话有没有更好的方法?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/1 12:11:00 [只看该作者]

Dim fdr As DataRow
Dim Filter As String = "1=1"
Dim r As Row = Tables("销售任务").current
Dim cs() As String = {"第一列", "第二列"}
for each c as string in cs
    If r.IsNull(c) Then
        filter &= " And " & c & " Is null"
    Else
        filter &= " and " & c & " = '" & r(c) & "'"
    End If
Next

msgbox(filter)


 回到顶部