Foxtable(狐表)用户栏目专家坐堂 → 【求助】关联筛选后的无关数据删除


  共有3095人关注过本帖树形打印复制链接

主题:【求助】关联筛选后的无关数据删除

帅哥哟,离线,有人找我吗?
季家桢
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:221 威望:0 精华:0 注册:2017/8/16 17:35:00
【求助】关联筛选后的无关数据删除  发帖心情 Post By:2017/8/22 13:41:00 [只看该作者]

在订单物品明细表中我通过与订单表的订单号关联筛选筛选出了所需的物品明细,但在明细表的datatable中仍有无关物品的信息,我想把这部分信息删除该怎么做呢。或者如何在导入数据的时候就能只把那些相关行导入呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 14:11:00 [只看该作者]

1、关联筛选,你不是可以筛选【无对应值】的数据,筛选出来以后,删除,不就好了?

 

2、你导入的代码怎么写的?请做具体foxtable项目发上来看看。


 回到顶部
帅哥哟,离线,有人找我吗?
季家桢
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:221 威望:0 精华:0 注册:2017/8/16 17:35:00
  发帖心情 Post By:2017/8/22 14:22:00 [只看该作者]

感谢有点甜老师的指导,还想请问下如何以代码的形式将无关行删除呢?deletefor函数中的filter参数好像无法实现关联筛选的效果。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 15:07:00 [只看该作者]

DataTables("表A").DeleteFor("第一列 not in ('" & DataTables("表B").GetComboListString("第一列").replace("|", "','") & "')")

 回到顶部
帅哥哟,离线,有人找我吗?
季家桢
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:221 威望:0 精华:0 注册:2017/8/16 17:35:00
  发帖心情 Post By:2017/8/22 16:28:00 [只看该作者]

如果我想删除当前表中的所有行(大概10万行左右)的数据而非删除表,我通过表的左上角选定所有行再点击删除行操作可以很快删除当前表中所有行,但我用

For Each r As Row In Tables("表A").rows

 r.Delete

Next


进行操作,耗时非常长,甚至程序会无响应,想请问老师如何使这段代码效率变高呢?


 回到顶部
帅哥哟,离线,有人找我吗?
季家桢
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:221 威望:0 精华:0 注册:2017/8/16 17:35:00
  发帖心情 Post By:2017/8/22 16:49:00 [只看该作者]

Syscmd.Row.Delete() 的源代码有吗?如何执行这段代码却不弹出提示框直接执行呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 17:14:00 [只看该作者]

回复5楼

 

DataTables("表C").DeleteFor("")

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 17:15:00 [只看该作者]

以下是引用季家桢在2017/8/22 16:49:00的发言:
Syscmd.Row.Delete() 的源代码有吗?如何执行这段代码却不弹出提示框直接执行呢?

 

http://www.foxtable.com/help/topics/0599.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
季家桢
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:221 威望:0 精华:0 注册:2017/8/16 17:35:00
  发帖心情 Post By:2017/8/22 17:26:00 [只看该作者]

感谢有点甜老师指导,可是对于大量数据删除来说为何系统命令的删除比逐行删除的效率要高几十倍呢?哪怕对于十万行数据的删除,系统命令的速度也好像是一瞬间的同步删除。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/22 17:31:00 [只看该作者]

这样写呢?

 

systemready = False
With Tables("表C")
    .StopRedraw
    For i As Integer = .BottomPosition To .TopPosition Step -1
        .Rows(i).Delete()
    Next
    .ResumeRedraw
End With
systemready = True


 回到顶部
总数 13 1 2 下一页