以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何用表A第一列的数据查询表B第二列数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82754)

--  作者:飞云
--  发布时间:2016/3/24 11:18:00
--  如何用表A第一列的数据查询表B第二列数据
表A第一列的数据(201,202,203......)查询表B第二列(201,203,205,208....)是否含有表A第一列的数据,并显示在表B的第三列上(201,203),谢谢!
--  作者:飞云
--  发布时间:2016/3/24 11:26:00
--  
补充:表A有10行
201
202
203
204
...
如果表B第二列包含201,203
那么表B第三列显示201,203

--  作者:大红袍
--  发布时间:2016/3/24 11:26:00
--  
For Each dr As DataRow In DataTables("表B").datarows
    Dim fdr As DataRow = DataTables("表A").find("第一列 = \'" & dr("第一列") & "\'")
    If fdr IsNot Nothing Then
        dr("第三列") = fdr("第一列")
    End If
Next

--  作者:飞云
--  发布时间:2016/3/24 11:37:00
--  
谢谢
--  作者:飞云
--  发布时间:2016/3/24 20:29:00
--  
表A第一列的数据(201,202,203......)查询表B第二列单元格内的(201,203,205,208....)是否含有表A第一列的数据,并显示在表B的第三列上(201,203),谢谢!
表A有10列分别是
201
202
203
204
......
表B第二列分别是
比如:第一行的单元格内容为“201号203号...办法....”
第二行为“201号205号....办法....”
想在表B第二列导入数据时,自动查询表A,当查询到时,表B第三列显示为
201,203
201,205
凡是涉及到的号全部显示出来
谢谢!


--  作者:大红袍
--  发布时间:2016/3/24 20:47:00
--  
For Each dr As DataRow In DataTables("表B").datarows
    Dim str As String = dr("第一列")
    Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+")
    str = ""
    For i As Integer = 0 To mc.count - 1
        Dim fdr As DataRow = DataTables("表A").find("第一列 = \'" & mc(i).value & "\'")
        If fdr IsNot Nothing Then
            str &= mc(i).value & ","
        End If
    Next
    dr("第三列") = str.trim(",")
Next

--  作者:飞云
--  发布时间:2016/3/24 21:14:00
--  
表A
  211 
212
  213
  214
   .....
表B
 杨村站下行正线及3、Ⅴ、7、9道封锁,维管段在京沪下行正线110km200m至
112km000m及杨村站内3、Ⅴ、7、9道处车梯占用进行接触网全面检查作业,届
时影响:豆张庄(不含)至杨村(含)至汉沟镇(不含)间京沪下行线及豆张庄
(不含)至杨村(含)至汉沟镇(不含)间京沪三线接触网供电臂停电,即:豆
张庄变电所211号、215号馈线停电,具体影响范围、停电范围见停电卡片50403号、
50406号。  
 211号、
215号。    
      
      
      

图片点击可在新窗口打开查看


--  作者:飞云
--  发布时间:2016/3/24 21:14:00
--  
谢谢老师!
--  作者:大红袍
--  发布时间:2016/3/24 21:16:00
--  
For Each dr As DataRow In DataTables("表B").datarows
    Dim str As String = dr("第一列")
    Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]{3}")
    str = ""
    For i As Integer = 0 To mc.count - 1
        Dim fdr As DataRow = DataTables("表A").find("第一列 = \'" & mc(i).value & "\'")
        If fdr IsNot Nothing Then
            str &= mc(i).value & ","
        End If
    Next
    dr("第三列") = str.trim(",")
Next

--  作者:飞云
--  发布时间:2016/3/24 21:27:00
--  
谢谢大红袍老师,问题解决!