Foxtable(狐表)用户栏目专家坐堂 → 重置列就死机


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

主题:重置列就死机

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


加好友 发短信
等级:婴狐 帖子:62 积分:691 威望:0 精华:0 注册:2011/8/15 7:01:00
重置列就死机  发帖心情 Post By:2014/10/5 11:07:00 [只看该作者]

老师好,节日愉快!
我有个表80000行数据,资产代码是从资产代码库中自动索引,我在datachanged中输入了代码,单个输入没有问题,我重置列就死机,请高手教我如何在命令窗口或直接用SQL语句学习,谢谢!
If e.DataCol.Name = "资产分类名称" Then  '当前表  当前列的名字固定了
    For Each shujuyuan As Row In Tables("资产分类代码表").Rows   '在【数据源】表的所有行中去找
        If e.DataRow("资产分类名称") = shujuyuan("资产分类") Then  '如果当前行的某个值和数据源表的某个值相符合
            e.DataRow("资产分类代码") = shujuyuan("四级代码")  '数据源的第一个赋值
            e.DataRow("卡片类型") = shujuyuan("一级代码名称")  '数据源的第二个赋值
            Exit For  '这个很关键,如果不结束,就会一直找到最后面,
Else
            e.DataRow("资产分类代码") = Nothing '数据源的第一个赋值
            e.DataRow("卡片类型") = Nothing  '数据源的第二个赋值
        End If
    Next
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/5 11:10:00 [只看该作者]

If e.DataCol.Name = "资产分类名称" Then  '当前表  当前列的名字固定了
    Dim fdr As DataRow = DataTables("资产分类代码表").Find("资产分类 = '" & e.DataRow("资产分类名称") & "'")
    If fdr IsNot Nothing Then  '如果当前行的某个值和数据源表的某个值相符合
        e.DataRow("资产分类代码") = fdr("四级代码")  '数据源的第一个赋值
        e.DataRow("卡片类型") = fdr("一级代码名称")  '数据源的第二个赋值
    Else
        e.DataRow("资产分类代码") = Nothing '数据源的第一个赋值
        e.DataRow("卡片类型") = Nothing  '数据源的第二个赋值
    End If
End If

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


加好友 发短信
等级:婴狐 帖子:62 积分:691 威望:0 精华:0 注册:2011/8/15 7:01:00
  发帖心情 Post By:2014/10/6 11:17:00 [只看该作者]

谢谢老师!国庆都帮我解决难题,为啥这样效率会提高?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/6 11:18:00 [只看该作者]

  这样不会重复查找,find函数的效率比自己循环的效率要高。

 回到顶部