以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  老师,如果用GetValues列出数值,然后把第每个值用来筛选,15行以后的行全部删除怎么写?di  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=136966)

--  作者:ls93005
--  发布时间:2019/6/25 16:32:00
--  老师,如果用GetValues列出数值,然后把第每个值用来筛选,15行以后的行全部删除怎么写?di
老师,如果用GetValues列出数值,然后把第每个值用来筛选,

select 出GetValues的每个值

select的集合中的大于15行的行全部删除怎么写?


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190625163626.png
图片点击可在新窗口打开查看


我知道这个效率超低。但是怎么写删出大于 15的行,想不出来。
[此贴子已经被作者于2019/6/25 16:37:44编辑过]

--  作者:y2287958
--  发布时间:2019/6/25 16:53:00
--  
看不明白,上例子+详细说明
--  作者:ls93005
--  发布时间:2019/6/25 16:58:00
--  
你好,我现在写的就是。
我就是想提取表 A 里 A1 列 的不重复的值。
然后用遍历这些值。
遍历出来的集合,第15行以后删掉就可以了。

--  作者:y2287958
--  发布时间:2019/6/25 17:00:00
--  
是删除行?还是删除集合中的元素?
--  作者:ls93005
--  发布时间:2019/6/25 17:01:00
--  
dim drs as list (of datarow) datatable("A").select ("xxx"."xxx")

如何删除这个list 里边15行以后的行?

--  作者:ls93005
--  发布时间:2019/6/25 17:02:00
--  
是行
--  作者:ls93005
--  发布时间:2019/6/25 17:28:00
--  
还在吗 老师
--  作者:有点甜
--  发布时间:2019/6/25 17:59:00
--  

1、如果是sqlserver数据库,可以利用 row_number 给你表格编号,然后删除编号大于15的即可;

 

2、如果不是,只能遍历一次数据处理,如

 

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "第一列"
For Each dr As DataRow In DataTables("表A").Select("", "第一列")
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
    End If
    If flag OrElse pdr Is Nothing Then
        If count > 5 Then
            idx &= idx_temp
        End If
        count = 1
        idx_temp = ""
    Else
        count += 1
        If count > 5 Then
            idx_temp &= dr("_Identify") & ","
        End If
    End If
   
    pdr = dr
Next

If count > 5 Then
    idx &= idx_temp
End If

Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"

\'Tables("表A").filter = "_Identify not in (" & idx.trim(",") & ")"  \'显示唯一值


--  作者:ls93005
--  发布时间:2019/6/25 18:54:00
--  
谢谢老师,但是我感觉您好像把我的需求想复杂了写,我只是想这么实现一下:

GetValues找出有几个“科目”
然后:
dim drs as list (of datarow) datatable("成绩表").select ("科目"."名次") 
以名次排序

15名以后的row就直接删掉。


--  作者:有点蓝
--  发布时间:2019/6/25 20:49:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=136977