以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请帮忙看下筛选后删除的代码 怎么改才能完成我要的功能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59544)

--  作者:mxm121
--  发布时间:2014/11/6 13:08:00
--  请帮忙看下筛选后删除的代码 怎么改才能完成我要的功能

用400的话单与客户资料表内登记的做比对 如果400的电话出现在客户资料表中的,就把400表内的话单删除,最后保留的全是没有登记在客户资料表中的

但是400号码如果有连续2条重复的号码记录时,执行下面的代码只能删除第一条重复记录,请问如何修改代码已完成我想要的功能


For Each r As Row In Tables("销售400通话记录").Rows
    Dim dr As DataRow = DataTables("客户资料").Find("联系电话 = \'" & r("主叫号码") & "\'")
    If dr Is Nothing Then
      r.Delete
    End If
Next

--  作者:mxm121
--  发布时间:2014/11/6 14:04:00
--  
变通了下解决了 但是否有更好的解决方法呢 

For Each r As Row In Tables("销售400通话记录").Rows
    Dim dr As DataRow = DataTables("客户资料").Find("联系电话 = \'" & r("主叫号码") & "\'")
    If dr Is Nothing Then
        r.Checked = True
    End If
Next
For Each r1 As Row In Tables("销售400通话记录").GetCheckedRows    
    r1.Delete
Next


另外这种在表A中查找是否包含表B中的电话  有没有更高效的方式了 我的客户资料有上万条  400通话记录每周也有几百条。。。。

--  作者:Bin
--  发布时间:2014/11/6 14:21:00
--  
用SQLcommand 执行 以下SQL语句

DELETE FROM {销售400通话记录} WHERE 联系电话 in (select Distinct 主叫号码 FROM {客户资料})