以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:关联表新增行出现重复内容,能否禁止增加重复行或取消增加重复行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27724)

--  作者:leeking
--  发布时间:2013/1/8 14:47:00
--  求助:关联表新增行出现重复内容,能否禁止增加重复行或取消增加重复行

请问:在关联表新增行时(之前已新增过一行),由于录入人员误操作,又出现相同一行数据,能否使用代码确认,不予新增行。请指点一下。

 

DataColChanging

If e.DataCol.Name = "发货批次" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("发货批次 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此发货批次已经存在!")
        e.Cancel = True
    End If
End If

此代码只能清除 "发货批次" 列的内容,而不能删除整行

 

[此贴子已经被作者于2013-1-10 0:02:24编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/8 15:08:00
--  
 哦哦,你想删除整行?

If e.DataCol.Name = "发货批次" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("发货批次 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此发货批次已经存在!")
        e.DataRow.Delete
    End If
End If


--  作者:leeking
--  发布时间:2013/1/8 23:03:00
--  
多谢您啦~~~~ 狐神!林总
--  作者:leeking
--  发布时间:2013/1/9 15:33:00
--  

 

lin_hailun:

If e.DataCol.Name = "发货批次" Then
Dim dr As DataRow
dr = e.DataTable.Find("发货批次 = \'" & e.NewValue & "\'")
If dr IsNot Nothing Then
MessageBox.Show("此发货批次已经存在!")
e.DataRow.Delete
End If
End If

运行结果,却是覆盖了原来有用的行了,我是要把新增的这行删除,而不是把原来有用的行删除


--  作者:lin_hailun
--  发布时间:2013/1/9 16:26:00
--  
 不明白,什么意思,楼主。例子,数据表。
--  作者:leeking
--  发布时间:2013/1/9 20:12:00
--  

 

[此贴子已经被作者于2013-1-11 21:40:48编辑过]

--  作者:有点甜
--  发布时间:2013/1/9 22:06:00
--  
If e.DataCol.Name = "发货批次" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("发货批次 = \'" & e.NewValue & "\' And [_Identify] <> " & e.DataRow("_Identify"))
    If dr IsNot Nothing Then
        MessageBox.Show("此发货批次已经存在!")
        e.DataRow.Delete
    End If
End If

--  作者:leeking
--  发布时间:2013/1/9 23:11:00
--  
还是不行,若是增加多行后,删除行会出现错误.看来思路要转变一下,若"发货批次"重复的话,禁止加入行,怎样才能实现
--  作者:客家阿哥
--  发布时间:2013/1/9 23:34:00
--  

 

[此贴子已经被作者于2013-1-9 23:35:11编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/10 9:02:00
--  
 你的项目打不开,没有数据源。

http://www.foxtable.com/help/topics/2481.htm