以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]两个表对比部分数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117564)

--  作者:81538475
--  发布时间:2018/4/14 19:21:00
--  [求助]两个表对比部分数据
关于两个表对比的帖子也看了,但是有一点不知道该如何写。 例如表A和表B 都有任务列和工时列 任务列的书写格式为 #12458 录入设备信息 其中#后面为编号 后面的文字为具体任务描述。 现在希望只对比任务列#后面的编号,找出两个表中编号不同的列。如果编号完全相同,在对比相应的工时是否一致。
--  作者:y2287958
--  发布时间:2018/4/14 21:44:00
--  
上例子
--  作者:81538475
--  发布时间:2018/4/14 22:02:00
--  
这两天不在电脑旁,如果不行的话,周一上传例子
--  作者:81538475
--  发布时间:2018/4/16 18:09:00
--  

测试文件上传。麻烦老大们看看,由于后面录入的内容可能会有手误,所以现在希望只是抽取每个任务的单号 也就是#和后面的数字作为核对标准

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


--  作者:有点甜
--  发布时间:2018/4/16 18:17:00
--  

参考代码

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
For Each dr As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt2.Find("任务 like \'" & dr("任务").split(" ")(0) & " %\'")
    If fdr Is Nothing Then
        msgbox(dr("任务"))
    Else
        If dr("工时") = fdr("工时") Then
            \'msgbox(123)
        End If
    End If
Next


--  作者:81538475
--  发布时间:2018/4/16 20:12:00
--  
请问下split后面的 (0)是什么含义呀
--  作者:有点蓝
--  发布时间:2018/4/16 20:25:00
--  
http://www.foxtable.com/webhelp/scr/0245.htm

拆分后得到的数组的第一个值

--  作者:81538475
--  发布时间:2018/9/18 14:48:00
--  
不好意思,好久之前的帖子,现在还有点疑问。。 #12458 录入设备信息   如果数字和汉字中间没有空格的话,有办法判断吗
--  作者:81538475
--  发布时间:2018/9/18 15:36:00
--  
老大帮忙看看
--  作者:有点甜
--  发布时间:2018/9/18 16:16:00
--  
以下是引用81538475在2018/9/18 14:48:00的发言:
不好意思,好久之前的帖子,现在还有点疑问。。 #12458 录入设备信息   如果数字和汉字中间没有空格的话,有办法判断吗

 

用正则匹配,参考

 

Dim str = " #12458 录入设备信息"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[#0-9]+")
msgbox(mc(0).value)