以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  BUG收集  (http://www.foxtable.com/bbs/list.asp?boardid=12)
----  关于列属性“禁止重复”的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=12&id=70447)

--  作者:digger_deng
--  发布时间:2015/6/22 11:17:00
--  关于列属性“禁止重复”的问题
将列属性“禁止重复”设置
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150622110923.png
图片点击可在新窗口打开查看
为true,如果输入重复值会报错,但是拷贝,粘贴重复值,系统并不会报错?见截图
--  作者:狐狸爸爸
--  发布时间:2015/6/23 10:22:00
--  

参考:

http://www.foxtable.com/help/topics/2481.htm

 


--  作者:digger_deng
--  发布时间:2015/6/23 11:13:00
--  
谢谢解答!图片点击可在新窗口打开查看
--  作者:明珞小李飞刀
--  发布时间:2015/7/24 15:08:00
--  
非常感谢“狐狸爸爸”大神,这个链接解决了我一个大问题,自己冥思苦想两天都想不出来的代码原来如此简单。
--  作者:明珞小李飞刀
--  发布时间:2015/7/24 15:09:00
--  
貌似我的本地教程里面,没有链接的这一段。
--  作者:digger_deng
--  发布时间:2015/8/5 11:23:00
--  

以下教程任然无法禁止重复值?比如:在禁止重复值的列可以插入两个空值,任然是重复值,在SQL里主键是不能插入两个空值的

禁止输入重复值

我们知道,列有禁止输入重复内容的属性,不过这个属性有局限,就是只有直接在表格中输入的时候才有效,如果你通过窗口输入或者是通过代码设置,同样可以输入重复内容。

禁止单列输入重复值

假定有个订单表,要求订单号列不能输入重复值,可以将这个表的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