以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  禁止输入重复值问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=149959)

--  作者:lgz518
--  发布时间:2020/5/16 16:45:00
--  禁止输入重复值问题
禁止输入重复值DataColChanging

Select Case e.DataCol.name
    Case "产品编号","订单登记单号","制单日期","数量"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("产品编号") = False AndAlso dr.IsNull("订单登记单号") AndAlso dr.IsNull("制单日期") AndAlso dr.IsNull("数量")= False Then
            If e.DataTable.Compute("Count([_Identify])","产品编号 = \'" & dr("产品编号") & "\' And 订单登记单号 = \'" & dr("订单登记单号")& "\' And 制单日期 = \'" & dr("制单日期") & "\' And 数量 = \'" & dr("数量")  & "\'") > 1 Then
                MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            End If
        End If
End Select

需求是,当"产品编号","订单登记单号","制单日期","数量"一样,禁止输入,但执行上面代码,则没有报错,而四个字段相的值,是可以录入,(测试时,
复制一行进行测试)

--  作者:有点蓝
--  发布时间:2020/5/16 17:16:00
--  
改到datacolchanged事件,而不是DataColChanging

--  作者:lgz518
--  发布时间:2020/5/16 17:32:00
--  
改到datacolchanged事件,一样

--  作者:有点蓝
--  发布时间:2020/5/16 17:39:00
--  
请上传实例测试