Foxtable(狐表)用户栏目专家坐堂 → [求助]重复值筛选


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

主题:[求助]重复值筛选

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/10/31 20:44:00 [只看该作者]

怎样分开判断

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2015/10/31 23:25:00 [只看该作者]

其实,楼主你没有说清楚你的问题·····  估计大家都没看懂。

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/1 8:55:00 [只看该作者]


此主题相关图片如下:1.jpg
按此在新窗口浏览图片

beforeSaveDataRow事件

Dim dr As DataRow =e.DataRow

Dim filter As String = "1=1"

If dr.IsNull("出厂编号"Then

    filter &" and 出厂编号 is null"

Else

    filter &" and 出厂编号 = '" & dr("出厂编号"& "'"

End If

If dr.IsNull("注册代码"Then

    filter &" and 注册代码 is null"

Else

    filter &" and 注册代码 = '" & dr("注册代码"& "'"

End If

If e.DataTable.Compute("Count([_Identify])",filter) > 1 Then

    MessageBox.Show("已经存在相同的出厂编号或注册代码!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

    e.cancel = True

End If


上面代码只有出厂编号与注册代码同时重复时,保存时才能出现提示框,我是要当出厂编号或者注册代码任一个出现重复保存时出现提示框。即当出厂编号重复了,但注册代码没有重复,保存时出现提示框。当注册代码重复了,但出厂编号没有重复,保存时出现提示框。当出厂编号与注册代码同时是重复,保存时出现提示框。如上截图,当出现第二、三、四行的情况时,当新增一行保存时,要求出现重复提示框,怎样设置代码?第二行出厂编号与第一行重复、第三行注册代码与第一行重复、第四行出厂编号与注册代码与第一行同时重复。

还有我想检查我以前的录入数据有没有出现这样的错误,能不能用命令代码把这些行筛选出来?


[此贴子已经被作者于2015/11/1 9:27:16编辑过]

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/1 14:01:00 [只看该作者]

怎样改代码

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/1 21:02:00 [只看该作者]

请帮忙


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/2 9:30:00 [只看该作者]

If e.DataTable.Compute("Count([_Identify])","出厂编号 = '" & dr("出厂编号") & "'") > 1 Then 提示出厂编号重复,退出

 

If e.DataTable.Compute("Count([_Identify])","注册代码 = '" & dr("注册代码") & "'") > 1 Then 提示注册代码重复,退出

 

继续原来多列重复判断


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/2 9:39:00 [只看该作者]

DataColChanged事件

 

Dim dr As DataRow =e.DataRow

Select Case e.DataCol.name
    Case "出厂编号"
        Dim filter As String
        If dr.IsNull("出厂编号") = False Then
            filter = "出厂编号 = '" & dr("出厂编号") & "'"
        End If
        Dim fdr As DataRow = e.DataTable.find(filter)
        If fdr IsNot Nothing Then
            filter =  "出厂编号 = '" & dr("出厂编号") & "' and  注册代码 = '" & dr("注册代码") & "'"
            fdr = e.DataTable.find(filter)
            If fdr IsNot Nothing Then
                msgbox("存在相同 编号 和 代码")
            Else
                msgbox("存在相同编号")
            End If
        End If
    Case "注册代码"
        Dim filter As String
        If dr.IsNull("注册代码") = False Then
            filter = "注册代码 = '" & dr("注册代码") & "'"
        End If
        Dim fdr As DataRow = e.DataTable.find(filter)
        If fdr IsNot Nothing Then
            filter =  "出厂编号 = '" & dr("出厂编号") & "' and  注册代码 = '" & dr("注册代码") & "'"
            fdr = e.DataTable.find(filter)
            If fdr IsNot Nothing Then
                msgbox("存在相同 编号 和 代码")
            Else
                msgbox("存在相同注册代码")
            End If
        End If
       
End Select


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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/2 21:37:00 [只看该作者]

我想在按保存按钮提示重复,代码在BeforeSaveDataRow事件下出现错误代码“Select Case e.DataCol.name” ,怎样改一下代码?因为我新增行基本上克隆行的,所以要求保存时如果有重复,就提示。
[此贴子已经被作者于2015/11/2 21:38:57编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/2 21:53:00 [只看该作者]

Dim dr As DataRow =e.DataRow

Dim filter As String
If dr.IsNull("出厂编号") = False Then
    filter = "出厂编号 = '" & dr("出厂编号") & "'"
End If

If dr.IsNull("注册代码") = False Then
    filter = "注册代码 = '" & dr("注册代码") & "'"
End If

Dim fdr As DataRow = e.DataTable.find(filter)
If fdr IsNot Nothing Then
    filter =  "出厂编号 = '" & dr("出厂编号") & "' and  注册代码 = '" & dr("注册代码") & "'"
    fdr = e.DataTable.find(filter)
    If fdr IsNot Nothing Then
        msgbox("存在相同 编号 和 代码")
    Else
        msgbox("存在相同编号")
    End If
End If

[此贴子已经被作者于2015/11/2 21:54:48编辑过]

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
  发帖心情 Post By:2015/11/2 22:28:00 [只看该作者]

克隆行时,编号与注册代码不一样,都提示“存在相同 编号 和 代码”
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

 回到顶部
总数 26 上一页 1 2 3 下一页