以下是引用lin_hailun在2013-1-26 9:19:00的发言:
数据量太大的话,会挂掉的,或者说,要相应的速度很慢。但是,你要筛选去除重复的话,只能通过这种方法了。
除非你在后台处理,用sql语句加载入符合你要求的那些行,用这种方法来模拟筛选。这样会快很多的。
又或者,这样写代码
Tables("订单").Filter = "单价 < 10" '模拟筛选
'开始,产品和客户不重复的行
Dim idxs As String = ""
Dim prev_cp As String = ""
Dim prev_kh As String = ""
For Each dr As DataRow In DataTables("订单").Select(Tables("订单").Filter, "产品,客户")
If prev_cp <> dr("产品") OrElse prev_kh <> dr("客户") Then
idxs &= dr("_Identify") & ","
prev_cp = dr("产品")
prev_kh = dr("客户")
Else
dr.Remove()
End If
Next
'Tables("订单").Filter = "_Identify in (" & idxs.Trim(",") & ")"
这方法确实很慢,我才3000行数据,打开就要用10秒钟了。使用remove后,其它table也就没办法引用被remove掉的数据了吧?
[此贴子已经被作者于2013-1-26 9:45:48编辑过]