以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 身份证重复值输入判断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57433)

--  作者:mxm121
--  发布时间:2014/9/24 20:03:00
--  [求助] 身份证重复值输入判断
按照手册  在表的datacolchanging里加入如下代码

If e.DataCol.Name = "身份证号码" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("身份证号码 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("身份证号码重复,请检查确认后重新输入!")
        e.Cancel = True
    End If
End If

直接在表格里输入重复身份证号码出现重复提示,我通过窗体输入,会出现两次重复信息提示,请问这是为啥


[此贴子已经被作者于2014-9-24 20:11:38编辑过]

--  作者:有点甜
--  发布时间:2014/9/24 20:14:00
--  

 测试了一下,这个没办法避免。

 

 变通一下处理,表的控制写在ValidateEdit事件;窗口控件的检测,写在控件的Validating事件


--  作者:mxm121
--  发布时间:2014/9/24 20:23:00
--  
好的,我试试吧
--  作者:mxm121
--  发布时间:2014/9/24 20:38:00
--  
解决了  在控件validating中加入如下代码解决 谢谢版主

Dim dr As DataRow
dr = DataTables("员工资料").sqlFind("身份证号码 = \'" & e.Sender.Text & "\'")
If dr IsNot Nothing Then
     e.Sender.Text = Nothing  
    MessageBox.Show("身份证号码重复,请检查确认后重新输入!")
    e.Form.Controls("TextBox3").Select()
End If