以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于多值字段的重复输入问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152840)

--  作者:wugang0131
--  发布时间:2020/7/23 15:04:00
--  关于多值字段的重复输入问题
有两列,"参会人员"和"缺席人员",均为多值字段,如何禁止两列出现任一姓名的重复输入?实在写不出代码,请老师指教,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table


--  作者:有点蓝
--  发布时间:2020/7/23 15:20:00
--  
是指同一个列里,多行不能有相同的姓名?

还是指同一行里"参会人员"选了张三,"缺席人员"就不能选张三?

--  作者:wugang0131
--  发布时间:2020/7/23 15:26:00
--  
蓝老师,是指同一行里参会人员选了张三,缺席人员就不能选张三
--  作者:有点蓝
--  发布时间:2020/7/23 15:33:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试(1).zip


--  作者:wugang0131
--  发布时间:2020/7/23 15:38:00
--  
谢谢蓝老师,又学到了一点
--  作者:wugang0131
--  发布时间:2020/7/31 15:33:00
--  
蓝老师,麻烦再请教一下,您的这段代码,在只有一行数据的情况下是有效的;但是当存在第二、三.......行数据时,就出现数据无法输入等问题,不知原因何在?请指教
--  作者:有点蓝
--  发布时间:2020/7/31 15:35:00
--  
我测试没有问题。请上传实例说明
--  作者:wugang0131
--  发布时间:2020/7/31 15:43:00
--  
比如第一行“参会人员”全选后,第二行“参会人员”全选时,就会提示此姓名已经存在,不知是何缘故?麻烦
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试(1).table

蓝老师看一下
--  作者:有点蓝
--  发布时间:2020/7/31 15:56:00
--  
If e.DataCol.Name = "参会人员" Then
    If e.NewValue > "" AndAlso e.DataRow.IsNull("缺席人员") = False
        Dim dr As DataRow
        Dim str As String = "," & e.DataRow("缺席人员") & ","
        For Each s As String In e.NewValue.split(",")
            If str Like "*," & s & ",*" Then
                MessageBox.Show("此姓名已经存在!")
                e.Cancel = True
                Return
            End If
        Next
    End If
ElseIf e.DataCol.Name = "缺席人员" Then
    If e.NewValue > "" AndAlso e.DataRow.IsNull("参会人员") = False
        Dim dr As DataRow
        Dim str As String = "," & e.DataRow("参会人员") & ","
        For Each s As String In e.NewValue.split(",")
            If str Like "*," & s & ",*" Then
                MessageBox.Show("此姓名已经存在!")
                e.Cancel = True
                Return
            End If
        Next
    End If
End If

--  作者:wugang0131
--  发布时间:2020/7/31 16:10:00
--  
这回可以了,谢谢蓝老师.
是不是上回代码e.DataTable.Find("\',\'+缺席人员1+\',\' like \'%," & s & ",%\'")这一段导致这一列的干扰?谢谢