Foxtable(狐表)用户栏目专家坐堂 → [求助]


  共有1702人关注过本帖树形打印复制链接

主题:[求助]

帅哥哟,离线,有人找我吗?
xh2207
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
[求助]  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:570 积分:4215 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
  发帖心情 Post By:2016/8/21 20:55:00 [只看该作者]

谢谢!cbt

 回到顶部
帅哥哟,离线,有人找我吗?
xh2207
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
  发帖心情 Post By: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


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108863 积分:553858 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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


 回到顶部