Foxtable(狐表)用户栏目专家坐堂 → [求助]核实表存在的重复内容


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

主题:[求助]核实表存在的重复内容

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/13 16:38:00 [只看该作者]

9楼代码没问题,请做实例上来测试。

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2017/6/13 17:07:00 [只看该作者]

在第二行的【工作站】填入“惠阳”;就会提示错误

 

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


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


加好友 发短信
等级:二尾狐 帖子:569 积分:4210 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2017/6/13 17:23:00 [只看该作者]

DataColChanging

If e.DataCol.Name = "工作站"  Or e.DataCol.Name = "职务"  Then
    If e.DataRow.IsNull("工作站") AndAlso e.DataRow.IsNull("职务") Then Return
    Dim fl As String = IIF(e.DataCol.Name = "工作站","工作站='" & e.NewValue & "' and 职务='" & e.DataRow("职务") & "'","工作站='" & e.DataRow("工作站") & "' and 职务='" & e.NewValue  & "'")
    If e.DataTable.Find(fl) IsNot Nothing  Then
        e.Cancel = True
        MessageBox.Show("工作站 和 职务 不能重复!")
    End If
End If

[此贴子已经被作者于2017/6/13 17:30:37编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2017/6/13 18:09:00 [只看该作者]

不要这样的判断;要的是:

 

1、【工作站】名称相同的同时、【职务】不能同时有多个“工作站站长”。

2、【工作站】名称相同的同时、【职务】不是“工作站站长”是允许有重复的(比如同一【工作站】下会允许有很多个【职务】为“员工”存在)


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


加好友 发短信
等级:二尾狐 帖子:569 积分:4210 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2017/6/13 18:32:00 [只看该作者]

 加多一个判断不就行了。。。
If e.DataCol.Name = "工作站"  Or e.DataCol.Name = "职务"  Then
    If e.DataRow.IsNull("工作站") AndAlso e.DataRow.IsNull("职务") Then Return
    Dim fl As String = IIF(e.DataCol.Name = "工作站","工作站='" & e.NewValue & "' and 职务='" & e.DataRow("职务") & "'","工作站='" & e.DataRow("工作站") & "' and 职务='" & e.NewValue  & "'")
    Dim dr As DataRow = e.DataTable.Find(fl)
    If dr IsNot Nothing AndAlso dr("职务")= "工作站站长" Then
        e.Cancel = True
        MessageBox.Show("工作站 和 职务 不能重复!")
    End If
End If

[此贴子已经被作者于2017/6/13 18:55:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/13 18:45:00 [只看该作者]

If e.DataCol.Name = "工作站"  Or e.DataCol.Name = "职务"  Then
    Dim dr As DataRow
    If e.DataCol.Name = "工作站" AndAlso e.DataRow.IsNull("职务") = False Then
        dr = e.DataTable.Find("工作站 = '" & e.NewValue & "' and 职务 = '工作站站长' ")
    ElseIf e.newvalue = "工作站站长" AndAlso e.DataRow.IsNull("工作站") = False Then
        dr = e.DataTable.Find("工作站 = '" & e.DataRow("工作站") & "' and 职务 = '工作站站长' ")
    End If
    If dr IsNot Nothing Then
        MessageBox.Show("该工作站已经存在站长,不能重复录入!!!")
        e.Cancel = True
    End If
End If

 回到顶部
总数 16 上一页 1 2