以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  禁止重复值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177434)

--  作者:lianghanyu
--  发布时间:2022/5/22 9:57:00
--  禁止重复值
If e.DataCol.Name = "优先等级" Then
    Dim dr As DataRow
    
    dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师")  & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("同一设计师无法设置两个相同的优先级别")
        e.Cancel = True
    End If
End If


在 datacolchanging  中加入这个代码, 在一定程度上可以避免输入重复值。

但是实际使用过程中,遇到问题:

如果编辑的时候,同时编多行后再保存,那么在编辑的过程中,无法判断出输入重复值 。

如下图片:


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2022-05-22_09-56-13.jpg
图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2022/5/22 20:18:00
--  
查多一次

If e.DataCol.Name = "优先等级" Then
    Dim dr As DataRow
    
    dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师")  & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("同一设计师无法设置两个相同的优先级别")
        e.Cancel = True
else
    dr = e.DataTable.Find("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师")  & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("同一设计师无法设置两个相同的优先级别")
        e.Cancel = True
    End If
    End If
End If


--  作者:lianghanyu
--  发布时间:2022/5/23 8:31:00
--  
如果我把优先等级全部清除,   所有格是空值就会出错了!!!!!!!!
--  作者:有点蓝
--  发布时间:2022/5/23 9:00:00
--  
If e.DataCol.Name = "优先等级" Then
if e.DataRow.isnull("优先等级")=false  andalso e.DataRow.isnull("当前设计师") =false
    Dim dr As DataRow
    
    dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师")  & "\' and _identify <> " & e.DataRow("_identify") )
    If dr IsNot Nothing Then
        MessageBox.Show("同一设计师无法设置两个相同的优先级别")
        e.Cancel = True
else
    dr = e.DataTable.Find("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师")  & "\' and _identify <> " & e.DataRow("_identify") )
    If dr IsNot Nothing Then
        MessageBox.Show("同一设计师无法设置两个相同的优先级别")
        e.Cancel = True
    End If
    End If
end if
End If

--  作者:lianghanyu
--  发布时间:2022/5/23 9:38:00
--  
删除时还是会出错。不知道 为什么。
就是它原来如果有内容的话,我删除,会出示出错:


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


--  作者:有点蓝
--  发布时间:2022/5/23 9:50:00
--  
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错