以文本方式查看主题

-  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=84829)

--  作者:benwong2013
--  发布时间:2016/5/11 14:48:00
--  表列组合判定问题(已处理)

If e.DataCol.Name = "A" Then

    Dim dr As DataRow

    dr = e.DataTable.Find("A = \'" & e.NewValue & "\'")

    If dr IsNot Nothing Then

        MessageBox.Show("此已经存在!")

        e.Cancel = True

    End If

End If


这个是表A列是否冲突的判定,若一个表中A列,B列,C列填入之后判定A+B+C与原来的表中数据有冲突时,应如何处理?

[此贴子已经被作者于2016/5/11 15:03:57编辑过]

--  作者:大红袍
--  发布时间:2016/5/11 15:20:00
--  
Select Case e.DataCol.name
    Case "A", "B", "C"
        Dim dr As DataRow = e.DataRow
        Dim str As String = ""
        If e.DataCol.name = "A" Then
            str = e.newvalue & "|" & dr("B") & "|" & dr("C")
        ElseIf e.DataCol.name = "B" Then
            str = dr("A") & "|" & e.newvalue & "|" & dr("C")
        ElseIf e.DataCol.name = "C" Then
            str = dr("A") & "|" & dr("B") & "|" & e.newvalue
        End If
        dr = e.DataTable.Find("A + \'|\' + B + \'|\' + C = \'" & str & "\'")
       
        If dr IsNot Nothing Then
           
            MessageBox.Show("此已经存在!")
           
            e.Cancel = True
           
        End If
       
end select