以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码优化请教 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71449) |
-- 作者:hbhb -- 发布时间:2015/7/11 12:21:00 -- 代码优化请教 大师:好!以下代码10000行数据运行要10秒,如何优化? For Each r1 As Row In b1.Rows \'---清除字符----- For Each l1 As Col In b1.Cols If r1.IsNull(l1) = False Then If l1.Index >= maxcol Then Exit For r1(l1) = trim(r1(l1).replace(" ","")) End If Next Next |
-- 作者:y2287958 -- 发布时间:2015/7/11 12:50:00 -- 具体说一下你的要求(最好上传项目文件) 你这样每行每列的循环肯定不会快的
|
-- 作者:hbhb -- 发布时间:2015/7/12 9:45:00 -- 请教如何清除表中各单元格数据的空字符? |
-- 作者:大红袍 -- 发布时间:2015/7/12 10:19:00 -- 那用sql语句做呗
up date {表A} set 第一列 = trim(第一列), 第二列 = trim(第二列) |
-- 作者:hbhb -- 发布时间:2015/7/12 10:37:00 -- 不错,好!再请问: 1、能否这样写 up date {表A} set 第一列 = trim(第一列.replace(" ",""))
2、因为列数太多,编列组合sql语句如何写?指导一下! |
-- 作者:大红袍 -- 发布时间:2015/7/12 10:48:00 -- Access没有Replace函数,所以你只能用1楼的方法处理。
http://www.foxtable.com/help/topics/0401.htm
|
-- 作者:czy -- 发布时间:2015/7/12 11:17:00 -- 组合编写可以这样吧 Dim sqltxt As String = "Up date {表A} Set " For Each dc As DataCol In DataTables("表A").DataCols sqltxt & = dc.Name & " = trim(" & dc.Name & ")," Next Output.Show(sqltxt.Trim(",")) |
-- 作者:hbhb -- 发布时间:2015/7/12 11:27:00 -- 那50000行,50列的数据处理没有2分钟下不来。 那代码中trim,replace,是不是都耗时? 先用sql清空前后,再用狐表replace如何?
|
-- 作者:大红袍 -- 发布时间:2015/7/12 11:31:00 -- 1、为什么你不在导入的时候,就把空格处理掉;
2、数据越多,耗时肯定越长,只能试试7楼了 |
-- 作者:hbhb -- 发布时间:2015/7/12 11:43:00 -- 谢谢! 我是用数据填充器填充的?这一步不会处理空字符?
|