以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为何会出错呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143071)

--  作者:ygg8310
--  发布时间: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


--  作者:有点蓝
--  发布时间: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
--  发布时间: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
代码能正常执行,但是逻辑上有问题,获取的结果不准确

--  作者:有点蓝
--  发布时间:2019/11/12 22:42:00
--  
需要什么样的逻辑?麻烦讲清楚。
--  作者:ygg8310
--  发布时间:2019/11/12 22:46:00
--  
遍历表B
表Afind nothing
表A 结论 = 没有
else
表A 结论 = 有

--  作者:有点蓝
--  发布时间:2019/11/12 22:49:00
--  
这个逻辑本身就有问题。表Afind都没有东西,给谁赋值【结论 = 没有】?

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

--  作者:ygg8310
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2019/11/12 23:09:00
--  
那就是条件有问题。上传实例看看