Foxtable(狐表)用户栏目专家坐堂 → 为何会出错呢?


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

主题:为何会出错呢?

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


加好友 发短信
等级:四尾狐 帖子:956 积分:8471 威望:0 精华:0 注册:2016/4/10 14:33:00
为何会出错呢?  发帖心情 Post By:2019/11/12 21:31:00 [只看该作者]

For Each r As Row In Tables("表A").rows
    Dim dr As DataRow = DataTables("表B").Find("表B第一列 = '" & r("表A第一列") & "' And 表B第二列 = '" & r("表A第二列") & "' And 表B的日期 < '" & r("表A的时间") & "'")
    If dr Is Nothing Then
        dr("表B结论") = "没有"  
    Else
        dr("表B结论") = "有"
        
    End If
Next


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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 21:57:00 [只看该作者]

应该这样吧
For Each r As Row In Tables("表A").rows
    Dim dr As DataRow = DataTables("表B").Find("表B第一列 = '" & r("表A第一列") & "' And 表B第二列 = '" & r("表A第二列") & "' And 表B的日期 < '" & r("表A的时间") & "'")
    If dr Is Nothing Then
        r("表B结论") = "没有"  
    Else
        r("表B结论") = "有"
        
    End If
Next

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


加好友 发短信
等级:四尾狐 帖子:956 积分:8471 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/11/12 22:16:00 [只看该作者]

老师,这个是个难题
这个:For Each r As Row In Tables("表A").rows
    Dim dr As DataRow = DataTables("表B").Find("表B第一列 = '" & r("表A第一列") & "' And 表B第二列 = '" & r("表A第二列") & "' And 表B的日期 < '" & r("表A的时间") & "'")
    If dr Is Nothing Then
        dr("表B结论") = "没有"  
    Else
        dr("表B结论") = "有"
    End If
Next
代码出错
这样:For Each r As Row In Tables("表B").rows
    Dim dr As DataRow = DataTables("表A").Find("表A第一列 = '" & r("表B第一列") & "' And 表A第二列 = '" & r("表B第二列") & "' And 表A的日期 < '" & r("表B的时间") & "'")
    If dr Is Nothing Then
        r("表B结论") = "没有"  
    Else
        r("表B结论") = "有"
        
    End If
Next
代码能正常执行,但是逻辑上有问题,获取的结果不准确

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 22:42:00 [只看该作者]

需要什么样的逻辑?麻烦讲清楚。

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


加好友 发短信
等级:四尾狐 帖子:956 积分:8471 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/11/12 22:46:00 [只看该作者]

遍历表B
表Afind nothing
表A 结论 = 没有
else
表A 结论 = 有

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 22:49:00 [只看该作者]

这个逻辑本身就有问题。表Afind都没有东西,给谁赋值【结论 = 没有】?

列出具体数据,并截图说明问题

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


加好友 发短信
等级:四尾狐 帖子:956 积分:8471 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/11/12 22:52:00 [只看该作者]

这样:For Each r As Row In Tables("表B").rows
    Dim dr As DataRow = DataTables("表A").Find("表A第一列 = '" & r("表B第一列") & "' And 表A第二列 = '" & r("表B第二列") & "' And 表A的日期 < '" & r("表B的时间") & "'")
    If dr Is Nothing Then
        r("表B结论") = "没有"  
    Else
        r("表B结论") = "有"
        
    End If
Next
代码能正常执行,但是逻辑上有问题,获取的结果不准确
与实际情况存在出入
比如说,表A明明是有,但代码返回结果是没有
[此贴子已经被作者于2019/11/12 22:52:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 23:09:00 [只看该作者]

那就是条件有问题。上传实例看看

 回到顶部