以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [灌水]"清除"按纽的清除速度太慢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2121)

--  作者:abcdzabcdz
--  发布时间:2009/3/16 17:53:00
--  [灌水]"清除"按纽的清除速度太慢
我试将一个有18列2000行的全数据表用"清除"按纽清除数据,在CPU为1G的计算机上运行,大约需2分钟,请老六看一下.
--  作者:czy
--  发布时间:2009/3/16 18:00:00
--  

表中有代码吗?

上传你的文件看看,或许自己写代码会好一点。


--  作者:abcdzabcdz
--  发布时间:2009/3/16 18:03:00
--  
没有代码,自己写代码速度快很多.
--  作者:狐狸爸爸
--  发布时间:2009/3/16 20:43:00
--  
这是一个毛病,用Clear:

DataTables("表").DataRows.Clear()
--  作者:林中侠
--  发布时间:2009/3/17 13:31:00
--  
记号
--  作者:czy
--  发布时间:2009/3/17 14:33:00
--  
楼主说的清除和老六说的清除是两码事。
--  作者:狐狸爸爸
--  发布时间:2009/3/17 14:54:00
--  
哈哈,这样可以了:

DataTables
("表").DataRows.Clear()
Tables("表").AddNew(2000)

--  作者:czy
--  发布时间:2009/3/17 14:56:00
--  
以下是引用狐狸爸爸在2009-3-17 14:54:00的发言:
哈哈,这样可以了:

DataTables
("表").DataRows.Clear()
Tables("表").AddNew(2000)


你好粗暴图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2009/3/17 15:11:00
--  

图片点击可在新窗口打开查看


--  作者:czy
--  发布时间:2009/3/17 20:23:00
--  
有什么不好呢,反正他要清除表中的所有数据。

老六的方法虽然粗暴,但效果应该是根相当好的,估计比下面的代码要快的多。

For Each dr As DataRow in DataTables("表A").DataRows
    For Each dc As DataCol In DataTables("表A").DataCols
        dr(dc.Name) = Nothing
    Next
Next

如果必须保留某几列的数据,可以不要第二个For Each语句,加入指定名称就可以。