Foxtable(狐表)用户栏目专家坐堂 → 代码优化请教


  共有2758人关注过本帖树形打印复制链接

主题:代码优化请教

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13122 威望:0 精华:0 注册:2014/5/15 21:34:00
代码优化请教  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4840 积分:35094 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2015/7/11 12:50:00 [只看该作者]

具体说一下你的要求(最好上传项目文件)
你这样每行每列的循环肯定不会快的

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13122 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2015/7/12 9:45:00 [只看该作者]

请教如何清除表中各单元格数据的空字符?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/12 10:19:00 [只看该作者]

 那用sql语句做呗

 

up date {表A} set 第一列 = trim(第一列), 第二列 = trim(第二列)


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13122 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2015/7/12 10:37:00 [只看该作者]

不错,好!再请问:
1、能否这样写 up date {表A} set 第一列 = trim(第一列.replace(" ",""))
2、因为列数太多,编列组合sql语句如何写?指导一下!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/12 10:48:00 [只看该作者]

 Access没有Replace函数,所以你只能用1楼的方法处理。

 

 http://www.foxtable.com/help/topics/0401.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13122 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2015/7/12 11:27:00 [只看该作者]

那50000行,50列的数据处理没有2分钟下不来。
那代码中trim,replace,是不是都耗时?
先用sql清空前后,再用狐表replace如何?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/12 11:31:00 [只看该作者]

1、为什么你不在导入的时候,就把空格处理掉;

 

2、数据越多,耗时肯定越长,只能试试7楼了


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13122 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2015/7/12 11:43:00 [只看该作者]

谢谢!
我是用数据填充器填充的?这一步不会处理空字符?

 回到顶部
总数 11 1 2 下一页