以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]包含查找出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60547)

--  作者:瞩望星空
--  发布时间:2014/11/26 19:31:00
--  [求助]包含查找出错

表B的实际行数有许多,现在需要达到根据表C中第二列的字符,用表C第一列去替换表B的第一列。

条件是:表B第二列的内容包含了表C第二列的内容。

以下写法达不到目的,请指正。

 

Dim dr2 As DataRow
For Each dr1 As DataRow In DataTables("表B").datarows
    dr2 = DataTables("表C").Find("[第二列] like \'%" & dr1("第二列") & "%\'")
    If dr2 Is Nothing Then
        MessageBox.Show("没有找到此字符串:"  & dr1("第二列") )
    Else
        \'如果找到的话
        dr1("第二列")= dr2("第二列")
    End If
Next

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:包含查找.table


--  作者:有点甜
--  发布时间:2014/11/26 19:55:00
--  

Dim dr2 As DataRow
For Each dr1 As DataRow In DataTables("表C").datarows
    dr2 = DataTables("表B").Find("[第二列] like \'%" & dr1("第二列") & "%\'")
    If dr2 Is Nothing Then
        MessageBox.Show("没有找到此字符串:"  & dr1("第二列") )
    Else
        \'如果找到的话
        dr2("第一列")= dr1("第一列")
    End If
Next

 


--  作者:瞩望星空
--  发布时间:2014/11/26 20:27:00
--  

谢谢甜总。

假如一定要从表B开始“遍历”

dr2 = DataTables("表B").Find("[第二列] like \'%" & dr1("第二列") & "%\'")

这个语句有没有可改写的可能?


--  作者:有点甜
--  发布时间:2014/11/26 20:29:00
--  
 那就不能用find,必须循环表C的每一行,比较值。