以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]职员名称重复后提示5遍  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61046)

--  作者:blsu33
--  发布时间:2014/12/5 21:56:00
--  [求助]职员名称重复后提示5遍
老师,
    下列代码放在 DataCol changing,当职员名称重复时,会出现MessageBox 提示1 出现4遍,提示2出现1遍,这是为什么。

Select Case e.DataCol.Name                                                                                         \'判断编码和名称是否重复开始
    Case "编码名称"
        Dim dr As DataRow
        dr = e.DataTable.Find("编码名称 = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            MessageBox.Show("职员名称重复是否正确!","请确认")     ‘提示1
        end If
    Case "编码规则"
        Dim dr As DataRow
        dr = e.DataTable.Find("编码规则= \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            MessageBox.Show("职员编码重复是否正确!","请确认")
            e.Cancel = True
         End If
End Select                                                                                                                     \'判断编码和名称是否重复结束

If e.DataCol.Name = "编码名称" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("编码名称 = \'" & e.DataRow("编码名称") & "\' and _Identify <> " & e.DataRow("_Identify"))
    If dr IsNot Nothing Then
        MessageBox.Show("职员姓名重复是否正确!","请确认")       ‘提示2
        e.Cancel=True
    End If
End If

--  作者:land089
--  发布时间:2014/12/5 22:38:00
--  
试试看这个
Select Case e.DataCol.Name                                                                                         \'判断编码和名称是否重复开始
    Case "编码名称"
        Dim dr As DataRow
        dr = e.DataTable.Find("编码名称 = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            MessageBox.Show("职员名称重复是否正确!","请确认")     ‘提示1
            e.Cancel=True
        end If
    Case "编码规则"
        Dim dr As DataRow
        dr = e.DataTable.Find("编码规则= \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then
            MessageBox.Show("职员编码重复是否正确!","请确认")
            e.Cancel = True
         End If
End Select
--  作者:blsu33
--  发布时间:2014/12/5 23:07:00
--  
多了一个“ e.Cancel=True”,本例考虑有同名的人存在时是“友情提示”,不用 e.Cancel=True

[此贴子已经被作者于2014-12-5 23:35:55编辑过]

--  作者:blsu33
--  发布时间:2014/12/5 23:36:00
--  
有点甜老师,
  是否为两个窗口同时不符合上述编码要求出现了提示?