Foxtable(狐表)用户栏目专家坐堂 → [求助]如何禁止多列输入重复内容


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

主题:[求助]如何禁止多列输入重复内容

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


加好友 发短信
等级:幼狐 帖子:195 积分:2140 威望:0 精华:0 注册:2013/5/10 15:59:00
[求助]如何禁止多列输入重复内容  发帖心情 Post By:2019/7/8 16:18:00 [只看该作者]

我在设置多列内容禁止重复的时候,现想再加一列进行判断的时候,应用到“DataColChanging事件”,想加入一行”类别“
Select Case e.DataCol.name

    Case "型号","规格","类别"
        Dim xh As String
        Dim gg As String

         Dim ss As String
        If e.DataCol.Name= "型号" Then
            xh = e.NewValue
            gg = e.DataRow("规格")

               ss =e.DataRow("类别")
        Else
            gg = e.NewValue
            xh = e.DataRow("型号")
        End If
        If xh > "" AndAlso gg  > "" Then
           
Dim dr As DataRow = e.DataRow
            If e.DataTable.Find("
型号 = '" & xh & "' And 规格 = '" & gg & "' And 类别 = '"") IsNot Nothing Then

                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If

End Select
这样子加进来,但系统会报错 请各位老师请导一下这段代码应该怎么修改,谢谢


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/8 16:28:00 [只看该作者]

Select Case e.DataCol.name

    Case "型号","规格","类别"
        Dim xh As String
        Dim gg As String

         Dim ss As String
        If e.DataCol.Name= "型号" Then
            xh = e.NewValue
            gg = e.DataRow("规格")

               ss =e.DataRow("类别")
        ElseIf e.DataCol.Name= "规格" Then
            gg = e.NewValue
            xh = e.DataRow("型号")
               ss =e.DataRow("类别")

          else

               ss = e.NewValue

            xh = e.DataRow("型号")
            gg = e.DataRow("规格")

        End If
        If xh > "" AndAlso gg  > "" Then 
            
Dim dr As DataRow = e.DataRow
            If e.DataTable.Find("
型号 = '" & xh & "' And 规格 = '" & gg & "' And 类别 = '" & ss & "'"IsNot Nothing Then

                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If

End Select

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


加好友 发短信
等级:幼狐 帖子:195 积分:2140 威望:0 精华:0 注册:2013/5/10 15:59:00
  发帖心情 Post By:2019/7/8 16:59:00 [只看该作者]

第一个问题:类别一列,还是可以重复内容输入,没有提醒的,是可以随意插入重复内容的
第二个问题:如系统有检测到重复内容的,是不是可以有公式,跳转到该一行当中的

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

[此贴子已经被作者于2019/7/8 17:25:18编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/7/8 17:31:00 [只看该作者]

我测试没有问题,你明白这个代码的意思吗?
这个代码的意思是:不能有型号、规格、类别三列内容完全相同的两行, 并非不能有类别相同的两行,也就是这三列可以存在重复值。
[此贴子已经被作者于2019/7/8 17:31:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/8 17:41:00 [只看该作者]

我测试没有问题,请上传具体实例说明

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


加好友 发短信
等级:幼狐 帖子:195 积分:2140 威望:0 精华:0 注册:2013/5/10 15:59:00
  发帖心情 Post By:2019/7/9 9:03:00 [只看该作者]

甜老师,我这里需要三列来筛选重复值的(材料名称、系列、规格型号),但实测环境下,只有两列能判断并提前拦截(材料名称、系列),只剩下规格型号这一列未能判断,请甜老师帮忙看一下,谢谢

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2_201907090843.zip


另外,我想问一下的是:如三列都检测到重复内容的,提示并可以跳转到该一行当中的去,哪这一个应该参照一个事件呢,请指导一下.

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/9 9:41:00 [只看该作者]

请仔细看看4楼的说明。系列列单元格没有数据,是无法判断重复的。空值是不存在重复不重复的问题的

 回到顶部