以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求解:不明错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31482) |
-- 作者:jacksn -- 发布时间:2013/4/16 11:57:00 -- [求助]求解:不明错误 在beforeSelChange事件中编写以下代码,目的是为了客户在增加记录后避免某些列的内容为空,但是在执行“同步表”和“筛选”时出错(如图),删除此代码后就回复正常,求解! 图不会上传,写出来:错误代码位置:覆价汇总,beforeselchange system.indexoutofRangeException: 索引 -3 不是为负数,就是大于行数。 .... \'验证新加行是否有缺漏 Dim r1 As Integer = CurrentTable.Rows.Count Dim Oldr As Integer = e.OldRange.RowSel Dim newr As Integer = e.newRange.RowSel If CurrentTable.Rows(oldr).IsNull("初评值") Or oldr = newr Then Return Dim st As String If oldr <> newr AndAlso oldr = r1 - 1 \'如果当前行改变 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 Dim jc() As String ={"序","初评编号","省","市","区","地址","用途","建筑面积","楼盘小区","进度","接单时间","估价人","委托方类型"} For Each j As String In jc If r.Isnull(j) Then st = st & "," & j Next If st <> "" Then e.Cancel = True st = st.trimstart(",") messagebox.show(st,"以下信息未填写完整:") End If End If
[此贴子已经被作者于2013-4-16 15:18:53编辑过]
|
-- 作者:Bin -- 发布时间:2013/4/16 12:02:00 -- 图挂了.报的是什么错误? 上传图片请用 添加附近方式.
|
-- 作者:jacksn -- 发布时间:2013/4/16 15:20:00 -- 我发现原因了,是因为“同步”或“筛选时”,oldrange.rowsel= -3,但是为什么rowsel会等于负数呢? [此贴子已经被作者于2013-4-16 15:20:23编辑过]
|
-- 作者:Bin -- 发布时间:2013/4/16 15:21:00 -- 以下是引用jacksn在2013-4-16 15:20:00的发言:
判断一下rowsel>=0 再执行代码即可.
我发现原因了,是因为“同步”或“筛选时”,rowsel= -3,但是为什么rowsel会等于负数呢? |
-- 作者:jacksn -- 发布时间:2013/4/16 16:22:00 -- 我知道判断是否 <0 ,但是我仍然想知道为什么会<0 . |