以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89423)

--  作者:xh2207
--  发布时间:2016/8/21 19:50:00
--  [求助]

请教:

第一列    第二列    

123       ABC     

123       DEF

456       ABC

789       DEF

789       DEF      不允许 

 

在DataColChanging事件中设置代码,使得不管通过任何方式修改列的内容,都不能在第一列和第二列同时输入重复值,例如希望第一列和第二列不能同时输入重复值:

If e.DataCol.Name = "第一列"  ore.DataCol.Name = "第二列“ Then
    Dim
dr As DataRow
    dr = e.
DataTable.Find("第一列 = \'" & e.NewValue & "\'and   第一列 = \'" & e.NewValue & "\'")
   
If dr IsNot Nothing Then
        MessageBox.Show(
"已经存在!")
        e.Cancel =
True
    End
If
End
If

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:请教.table


--  作者:cbt
--  发布时间:2016/8/21 20:30:00
--  
If e.DataCol.Name= "第一列" Then
    Dim dr As DataRow = e.DataTable.Find("第一列=\'" & e.NewValue & "\' and 第二列=\'" & e.DataRow("第二列") & "\'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
ElseIf e.DataCol.Name= "第二列" Then
    Dim dr As DataRow = e.DataTable.Find("第二列=\'" & e.NewValue & "\' and 第一列=\'" & e.DataRow("第一列") & "\'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
End If
[此贴子已经被作者于2016/8/21 20:31:44编辑过]

--  作者:xh2207
--  发布时间:2016/8/21 20:55:00
--  
谢谢!cbt
--  作者:xh2207
--  发布时间:2016/8/31 16:24:00
--  

请教:

 

第一列    第二列     第三列

123       ABC      001

123       DEF      001

456       ABC      001

789       DEF      001

789       DEF      001     不允许 

789       DEF      002     允许

123       ABC      001     不允许

 

如何判断,当第三列的值相同时,不允许第一列和第二列同时重复。当第三列的值不相同时,允许第一列和第二列同时重复。

请教如何完善程序,谢谢

If e.DataCol.Name= "第一列" Then
    Dim dr As DataRow = e.DataTable.Find("第一列=\'" & e.NewValue & "\' and 第二列=\'" & e.DataRow("第二列") & "\'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
ElseIf e.DataCol.Name= "第二列" Then
    Dim dr As DataRow = e.DataTable.Find("第二列=\'" & e.NewValue & "\' and 第一列=\'" & e.DataRow("第一列") & "\'")
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
End If


--  作者:有点蓝
--  发布时间:2016/8/31 17:09:00
--  
Select Case e.DataCol.Name
    Case "第一列","第二列","第三列"
    Dim dr As DataRow = e.DataTable.Find("第一列=\'" & e.DataRow("第一列") & "\' and 第二列=\'" & e.DataRow("第二列") & "\' and 第三列=\'" & e.DataRow("第三列") & "\'and [_Identify] <> " & e.DataRow("_Identify"))
    If dr IsNot Nothing Then
        e.Cancel = True
    End If
End Select