以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查找问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=180022)

--  作者:edisontsui
--  发布时间:2022/9/23 16:44:00
--  查找问题
For Each r As Row In Tables("钣金开料单").rows
    If r("顺序号") = 1 Then
        r("票号3") = r("票号2")
    Else 
        Dim dr As DataRow 
        Dim s1 As String = r("顺序号") - 1
        MsgBox(s1)
        dr = DataTables("钣金开料单").Find("票号1 = \'" & r("票号1") & "\' and 开料长度 = \'" & r("开料长度") & "\' and 冲孔程序 = \'" & r("冲孔程序") & "\' and 顺序号 = \'" & s1 & "\'")
        If dr Is Nothing Then
            MsgBox("找到了")
            r("票号3") = dr("票号3")
        Else
            MsgBox("未找到")
            r("票号3") = dr("票号2")
        End If
        
    End If
Next

上述按钮代码目的是查询上一行(s1)与本行的 “票号1”、“开料长度” 和 “冲孔程序” 是否完全相同。但是测试结果,MsgBox 总是显示 "未找到"。请问哪里存在问题呢?谢谢。

--  作者:有点蓝
--  发布时间:2022/9/23 16:56:00
--  
Tables("钣金开料单").sort = “顺序号
For Each r As Row In Tables("钣金开料单").rows
    If r("顺序号") = 1 Then
        r("piao号3") = r("piao号2")
    Elseif r.index > 0
dim r1 as row = Tables("钣金开料单").rows(r.index - 1)
if  r("piao号1") = r1("piao号1") andalso r("开料长度") = r1("开料长度") andalso r("冲孔程序") =r1("冲孔程序") 
            MsgBox("找到了")
            r("piao号3") = r1("piao号3")
        Else
            MsgBox("未找到")
            r("piao号3") = r1("piao号2")
        End If
        
    End If
Next

--  作者:edisontsui
--  发布时间:2022/9/23 17:06:00
--  
行了。谢谢。
--  作者:edisontsui
--  发布时间:2022/9/24 8:52:00
--  
为什么像1楼那样我用 “顺序号 = \'" & s1” 来判断就不行呢?还是因为用 find 来判断就不行?
--  作者:有点蓝
--  发布时间:2022/9/24 9:25:00
--  
编程基础问题

If dr Is Nothing Then
改为
If dr Isnot Nothing Then