以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]怎样控制输入重复数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3221) |
-- 作者:sohper -- 发布时间:2009/6/20 19:09:00 -- [求助]怎样控制输入重复数据 使用窗口录入,窗口中一个TextBox控件, 在TextBox的ValueChanged 事件中,控制重复的输入, |
-- 作者:yangming -- 发布时间:2009/6/20 23:55:00 -- Dim dr As DataRow With e.Form.Controls("TextBox1") dr = DataTables("表A").Find("客户= \'" & .Value & "\'") If dr IsNot Nothing Then \'如果找到的话 MessageBox.Show("客户记录已存在!", "提示") End If End With |
-- 作者:yangming -- 发布时间:2009/6/21 0:04:00 -- 看看这个: Dim dr As DataRow Dim r As Row = CurrentTable.Rows(CurrentTable.Rows.Count-1) With e.Form.Controls("TextBox1") dr = DataTables("表A").Find("客户= \'" & .Value & "\'") If dr IsNot Nothing Then \'如果找到的话 MessageBox.Show("客户记录已存在!", "提示") r("客户") = "" End If End With |
-- 作者:sohper -- 发布时间:2009/6/21 8:04:00 -- 多谢Yang版,有这个语句控制会有问题 ,这是我用的语句 Dim Txtb As WinForm.TextBox = e.Sender Dim Index As Integer Index = Tables("客户信息表").FindRow("[客户编号]= \'" & Txtb.Value & "\'",0,True) If Index >=0 MessageBox.Show("该客户编号已存在!","警告") Txtb.Value = Nothing Txtb.Select() Return End If 遇到一个问题, 在建立的一个编辑窗口中,假设原来有一条记录,客户编号为3,现改为我,再点取消,就会弹出 "客户编号已存在!"的警告. 这个控制不像在易表中,这个FindRow不像易表中的可以找第几行记录, 如何改成 FindRow("[客户编号]= \'" & Txtb.Value & "\'",1,True) 的话,有输入第2个相同的客户编号时也不会弹出 窗口 |
-- 作者:yangming -- 发布时间:2009/6/21 9:19:00 -- 上传你的文件看看吧,从你的代码看,你需要的是查到相同编号后就将光标定位到文本框中,并不是到找到的那一行啊 |
-- 作者:sohper -- 发布时间:2009/6/21 16:07:00 -- 是的,我的代码是,当前行绑定的TextBox中输入一个客户编号,如果这个客户编号已经存在,就把这个TextBox清空,然后把光标定位到这个TextBox |
-- 作者:狐狸爸爸 -- 发布时间:2009/6/21 16:12:00 -- 列属性不是由禁止输入重复内容的设置吗? |
-- 作者:sohper -- 发布时间:2009/6/21 16:16:00 -- 是的,可没有提示,呵呵! |