Foxtable(狐表)用户栏目专家坐堂 → [求助]请问如何解决这样的错误提示!


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

主题:[求助]请问如何解决这样的错误提示!

美女呀,离线,留言给我吧!
rophy0952
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]请问如何解决这样的错误提示!  发帖心情 Post By:2015/3/22 14:00:00 [只看该作者]

表属性的“datacolchanged”事件中的如下代码,在执行的过程中提示:“索引超出了数组界限。”,试着弹出结果,与实际想要的一致,但就不知什么原因会出现这个错误提示?请指教,谢谢!

If e.DataCol.name = "规格" Then
    If e.DataRow.Isnull("规格") = True Then
        e.DataRow("卷芯宽度") = Nothing
    Else
        e.DataRow("卷芯宽度") = e.DataRow("规格").Split("*")(1)
    End If
End If



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


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

If e.DataCol.name = "规格" Then
    If e.DataRow.Isnull("规格") = True OrElse e.DataRow("规格").Split("*") < 2 Then
        e.DataRow("卷芯宽度") = Nothing
    Else
        e.DataRow("卷芯宽度") = e.DataRow("规格").Split("*")(1)
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2015/3/22 14:26:00 [只看该作者]

我的规格是这样的“3.5*14*1.5”,想取两个*号中间的数(14),按照上面代码修改后,卷芯宽度值为空

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


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

 代码没问题,重置一下你的规格列。

 

 如果还不行,就是你数据有问题


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2015/3/22 14:32:00 [只看该作者]

又出现这样的提示“没有为 类型“String()” 和 类型“Integer” 定义运算符“<”。”

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


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

If e.DataCol.name = "规格" Then
    If e.DataRow.Isnull("规格") = True OrElse e.DataRow("规格").Split("*").Length < 2 Then
        e.DataRow("卷芯宽度") = Nothing
    Else
        e.DataRow("卷芯宽度") = e.DataRow("规格").Split("*")(1)
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2015/3/22 15:09:00 [只看该作者]

刚才用排除法将所有代码屏蔽掉,逐一排除,发现是在执行下面的代码时,出现的错误提示:“索引超出了数组界限。”,该如何处理呢,谢谢!
Select Case e.DataCol.name
    Case "不良品_只数","不良品_毛重","卷芯单重"
        Dim dr As DataRow = e.DataRow
        dr("不良品_净重") = dr("不良品_毛重")-dr("不良品_只数")*dr("卷芯单重")
        dr.save
End Select

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


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

1、去检测此列名 不良品_净重 对应的Datacolchanged代码;

 

2、去检测beforesavedatarow事件


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2015/3/22 15:24:00 [只看该作者]

有这段代码,但还是注释的状态呀?beforesavedatarow事件中无代码
'Select Case e.DataCol.name
    'Case "不良品_净重","单边_不良净重"
        'Dim r As Row = Tables("核数表").Current
        'Tables("核数明细表").current.save
        'r("不良品_净重") = DataTables("核数明细表").SQLCompute("sum(不良品_净重)","流水号 = '" & e.DataRow("流水号") & " '") + DataTables("核数明细表").SQLCompute("sum(单边_不良净重)","流水号 = '" & e.DataRow("流水号") & " '")
        'r.save
'End Select
[此贴子已经被作者于2015/3/22 15:24:48编辑过]

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


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

 1、加入msgbox看是哪里出问题;

 

 2、不会排查,就请上传具体例子


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