Foxtable(狐表)用户栏目专家坐堂 → 逻辑列,选中金额不为空的行,删除完全空行


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

主题:逻辑列,选中金额不为空的行,删除完全空行

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9386 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/3/5 21:00:00 [显示全部帖子]

For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("金额") Then
        dr.Delete()
    Else
        dr("已付款") = True
    End If
Next

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9386 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/3/5 21:17:00 [显示全部帖子]

3楼的执行效率比2楼要高。

With DataTables("表A")
    .DeleteFor("[金额] is null")
    .ReplaceFor("已付款",True,"")
End With

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9386 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/3/5 21:27:00 [显示全部帖子]

若将2楼代码换为如下:

For Each r As Row In Tables("表A").Rows
    If r.IsNull("金额") Then
        r.Delete()
    Else
        r("已付款") = True
    End If
Next

则需运行多次(测试环境为商业版),方能达到预期的效果,不知何故?请高手指点?

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9386 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2018/3/5 22:40:00 [显示全部帖子]

哦!倒序删行!时间久了,给忘了。

可2楼测试却一次性达到了预期的效果?这又是何故?
[此贴子已经被作者于2018/3/5 23:01:55编辑过]

 回到顶部