以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 有劳 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70755) |
||||
-- 作者:hbhb -- 发布时间:2015/6/28 15:05:00 -- 有劳 大师:如实例 请问如何删除表中品名行以上、合计行之外的行,也就是说模糊删除第一个四列皆有数据的行以上,及最后一个四列皆有数据的行以下的所有行。不查找具体某个值。
|
||||
-- 作者:大红袍 -- 发布时间:2015/6/28 15:09:00 -- DataTables("表A").DeleteFor("第一列 is null or 第二列 is null or 第三列 is null or 第四列 is null") |
||||
-- 作者:hbhb -- 发布时间:2015/6/28 15:19:00 -- 不行,中间有可能某一行某一列没有数据,此行不能删除,也就是说此数据区域不管数据不全,不能删除。 |
||||
-- 作者:hbhb -- 发布时间:2015/6/28 15:26:00 -- 也就是说含品名的行及含合计的行,四列肯定数据皆有,其他行不一定。但一定的是:此区域之外的行肯定数据不全。 |
||||
-- 作者:大红袍 -- 发布时间:2015/6/28 15:27:00 -- Dim sidx As Integer = Tables("表A").FindRow("第一列 = \'品名\'") |
||||
-- 作者:hbhb -- 发布时间:2015/6/28 15:35:00 -- 谢谢!不是如此要求。 要模糊删除,第一列不能准确确定数据记录。
只能根据两个绝对条件,查找第一个四列皆有数据,和最好一个皆有数据的行。定位后删除。 |
||||
-- 作者:大红袍 -- 发布时间:2015/6/28 15:40:00 -- Dim fdr As DataRow = DataTables("表A").Find("第一列 is not null and 第二列 is not null and 第三列 is not null and 第四列 is not null", "_sortkey") Dim sidx As Integer = Tables("表A").FindRow(fdr) fdr = DataTables("表A").Find("第一列 is not null and 第二列 is not null and 第三列 is not null and 第四列 is not null","_sortkey desc") Dim eidx As Integer = Tables("表A").FindRow(fdr) For i As Integer = Tables("表A").Rows.Count - 1 To 0 Step -1 If i < sidx OrElse i > eidx Then Tables("表A").Rows(i).delete End If Next [此贴子已经被作者于2015/6/28 16:07:55编辑过]
|
||||
-- 作者:hbhb -- 发布时间:2015/6/28 15:48:00 -- 谢谢!就是我要的效果,但是实例中是四列,能否劳驾完善一下,遍列列,因为列数也不一定! |
||||
-- 作者:大红袍 -- 发布时间:2015/6/28 15:48:00 -- 自己遍历 |
||||
-- 作者:hbhb -- 发布时间:2015/6/28 16:04:00 -- 您写的经典,作为函数收集。 强烈建议您写一本狐表编程技巧汇编,含实用性很强的函数或过程,实用的窗体?我预定。
|