以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]删除行时出现“索引 1 不是为负数,就是大于行数。”  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=81050)

--  作者:twef
--  发布时间:2016/2/17 13:41:00
--  [求助]删除行时出现“索引 1 不是为负数,就是大于行数。”


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160217133648.png
图片点击可在新窗口打开查看

表“员工信息登记表”与窗口中的表位置联动,删除行后出现错误


--  作者:大红袍
--  发布时间:2016/2/17 14:36:00
--  
贴出你CurrentChanged事件的代码看看
--  作者:twef
--  发布时间:2016/2/17 14:43:00
--  
If Forms("员工信息登记表").Opened AndAlso e.Table.rows.count > 0 Then \'如果窗口已经打开
    If e.Table.Current Is Nothing Then Return
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("员工信息登记表_Table1").FindRow(dr)
        If wz >=0 Then
        systemready = False
        Tables("员工信息登记表_Table1").Position = wz
        systemready = True
        Tables("员工信息登记表_Table1").Refresh
    Else
        Return
    End If
End If

--  作者:twef
--  发布时间:2016/2/17 14:45:00
--  

窗口中表的代码

If e.Table.Current Is Nothing Then Return
Tables("员工信息登记表_Table1").AutoSizeCols() \'自动调整列宽
Dim dr As DataRow = e.Table.Current.DataRow
Dim wz As Integer = Tables("员工信息登记表").FindRow(dr)

If wz >=0 Then
    systemready = False
    Tables("员工信息登记表").Position = wz

    systemready = True
End If


--  作者:大红袍
--  发布时间:2016/2/17 14:47:00
--  
代码应该没问题,做个具体例子上来测试。
--  作者:twef
--  发布时间:2016/2/17 14:52:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人员管理系统.zip


--  作者:大红袍
--  发布时间:2016/2/17 14:54:00
--  
密码
--  作者:twef
--  发布时间:2016/2/17 14:55:00
--  
9个9
--  作者:大红袍
--  发布时间:2016/2/17 17:01:00
--  

 汗,这个是bug。

 

 只要currentChanged事件写有代码,同时解锁行和删除行,就会报这个错的。

 

 删除按钮处理一下

 

With Tables("员工信息登记表")
    If .Current IsNot Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show("确定要删除数据吗?  删除后将不能恢复!!!", "警告",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning )
        If Result = DialogResult.ok Then
            .Current.Locked = False
            systemready = False
            .Current.Delete
            systemready = True

        End If
    End If
End With