表结构大致如下:
PartNum   Index  。。
E0001       1
E0001       2
E0001       3
E0001       5
E0002       2
E0002       5
E0002       6
E0002       7
E0002       8
。。同一PartNum的Index不能有重复但不同的PartNum的可以重复(Index可以不连续)
现使用DataGrid显示出某个PartNum的记录,若用户加入或修改数据,在移动的其它行时需要检查Index是否重复,
若重复则不能移动的其它行并提示
我尝试在MyDataGrid_RowColChange中处理,但没能实现:
1.不知道如何检查当前行的数据是否已经存在(Find函数试了总是向下检查)
2.在MyDataGrid_RowColChange做的一些动作有再次触发了MyDataGrid_RowColChange,导致很乱,我搞不清楚那位能给点提示,谢谢了

解决方案 »

  1.   


    能否在提示下:
    1.如何检查当前行的数据是否已经存在,并停留在当前行2.我尝试测试了下,但我又个删除按钮如下,点后记录删除但会出错:
    Private Sub CB_Delete_Click()
            MyAdodc.Recordset.Delete
            MyAdodc.Recordset.Update
            MyAdodc.Recordset.MoveNext
    End Sub
    Private Sub MyDataGrid_BeforeUpdate(Cancel As Integer)
        If MyAdodc.Recordset.Fields("SerialNum") = 4 Then
            MsgBox "不允许为4"
        End If
    End Sub
    错误信息:Row handle referred to deleted row or a row ed for deletion
    我不是Move了吗?
      

  2.   

    1 你总是有个key来判断吧,select下
    2,refresh下
    其实绑定的grid我没怎么用过。
      

  3.   

    注意用Delete的时候用UpdateBatch ,游标锁定类型定义为 adLockBatchOptimistic
      

  4.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP