以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  再提重复失效的问题,请教了!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26324)

--  作者:独孤九箭
--  发布时间:2012/11/30 9:57: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

 

功能已经实现,无论是控件,还是直接操作,都不会重复了。但有一个小问题,如果在控件中修改到重复值时,会报两次错。虽然不影响使用,但感觉还是有些奇怪,问有没有办法解决?

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:独孤九箭
--  发布时间:2012/11/30 10:01:00
--  

上面的附件没打包。再传个。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip

 


--  作者:独孤九箭
--  发布时间:2012/11/30 10:17:00
--  
大哥,里面设计了一个窗口,你打开窗口看看啊。
--  作者:lin_hailun
--  发布时间:2012/11/30 10:39:00
--  
以下是引用独孤九箭在2012-11-30 10:17:00的发言:
大哥,里面设计了一个窗口,你打开窗口看看啊。

木有看到错误。

--  作者:独孤九箭
--  发布时间:2012/11/30 10:47:00
--  

是这样的,当你在控件中改了有重复的值后,按下回车键或Tab键时(目前只测试了这两个键)会出现两次报错。

 


--  作者:lin_hailun
--  发布时间:2012/11/30 10:54:00
--  
 反复测试,木有发现错误提示。
--  作者:独孤九箭
--  发布时间:2012/11/30 11:03:00
--  

好吧,我把例子做得稍微完整一些。再次上传,没有添加任何代码,只是起动了窗口,并在窗口再添加了一个文本控件,用于输入第二列。

 

请在第一个框中输入一个重复的值,如当前是1111,后面有2222,3333,你可以输入一个2222,或3333,然后按回车,或者是Tab. 这时就会有两次报错。

 

我说过并不影响功能的实现。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2_1.zip


--  作者:lin_hailun
--  发布时间:2012/11/30 12:18:00
--  
 呃,这样说吧。你按下tab键,就相当于在表中按下了tab键,也就是焦点离开了这个表格,触发事件。然后你文本框的焦点离开了,也会触发这个事件。
--  作者:独孤九箭
--  发布时间:2012/11/30 12:44:00
--  

是的,原因我也想到了,只是无法解决,没关系,不影响使用。以后再想其他办法,看看能否在控件用代码来替代表事件。谢谢啦。