以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两表除部门不同外多列值对比用什么方法?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137196)

--  作者:飞云
--  发布时间:2019/6/30 8:31:00
--  两表除部门不同外多列值对比用什么方法?
表A:第1列、第2列、第3列、第4列

表B:第1列、第2列、第3列、第4列

想实现:如果表A和表B中4列数据相同则显示“通过”
          
            如果表A和表B中4列数据中任何一列不同,则提示是哪列数据不同


说明 表A由多个部门,多条数据构成
      
       表B只有一条数据


请问老师由什么办法提高运行速度吗?

--  作者:有点甜
--  发布时间:2019/6/30 10:00:00
--  

直接比较即可,如

 

datacolchanged事件,写代码

 

Dim r As Row = Tables("表B").rows(0)

If e.datarow("第一列") = r("第一列") andalso e.datarow("第二列") = r("第二列") andalso  e.datarow("第三列") = r("第三列") andalso  e.datarow("第四列") = r("第四列") then

    e.datarow("状态") = "通过"

Else

    e.datarow("状态") = "不通过"

End If


--  作者:飞云
--  发布时间:2019/6/30 10:46:00
--  
主要我想要各部门知道是什么原因不能通过的。有什么号的办法吗?


--  作者:有点甜
--  发布时间:2019/6/30 11:46:00
--  

Dim r As Row = Tables("表B").rows(0)

If e.DataRow("第一列") <> r("第一列") Then
   
    e.DataRow("状态") = "不通过(第一列)"
   
ElseIf  e.DataRow("第二列") <> r("第二列") Then
   
    e.DataRow("状态") = "不通过(第二列)"
   
Else
   
    e.DataRow("状态") = "通过"
   
End If