以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用代码设置表A第一列不重复  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12700)

--  作者:kevin
--  发布时间:2011/9/11 20:52:00
--  用代码设置表A第一列不重复
我知道内部表可以禁止重复,我需要用代码禁止第一列禁止重复(如果有重复数据,跳出提示)
--  作者:狐狸爸爸
--  发布时间:2011/9/11 21:02:00
--  

参考这里的示例四:

 

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

 


--  作者:kevin
--  发布时间:2011/9/11 21:33:00
--  

狐爸,我看到实例代码是这样的:

 

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

 

每次我在“订单号”列录入的内容尽管不重复,亦都是弹出“此订单号已经存在!”,就更别说真正录入重复的内容能够进行阻止了。不知道是我哪出问题了,请狐爸帮忙看看这个代码。


--  作者:狐狸爸爸
--  发布时间:2011/9/11 21:39:00
--  

此代码铅垂百炼,不知道多少人在用。

你做个不行的例子传上来给我看看。


--  作者:kevin
--  发布时间:2011/9/11 22:33:00
--  

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

 

表A 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

 

结果还是没有禁止重复


--  作者:don
--  发布时间:2011/9/11 22:43:00
--  
认真看看自己是设置DataColChanging吗?
--  作者:e-png
--  发布时间:2011/9/11 23:01:00
--  

放在DataColChanged中也可以:

If e.DataCol.Name = "订单号" Then
    Dim
dr As DataRow
    dr = e.
DataTable.Find("订单号 = \'" & e.NewValue & "\'")
   
If dr IsNot Nothing Then
        MessageBox.Show(
"此订单号已经存在!")
        e.Datarow("订单号")
nothing
    End
If
End
If


--  作者:lkqing
--  发布时间:2011/9/11 23:03:00
--  

放在表A DataColChanged事件中也可以,代码稍改一下

If e.DataCol.Name = "订单号" Then
Dim
dr As DataRow
dr = e.
DataTable.Find("订单号 = \'" & e.NewValue & "\'")
If dr IsNot Nothing Then
MessageBox.Show(
"此订单号已经存在!")
e.DataRow"订单号") =
Nothing
End
If
End
If

不好意思,与上一楼撞车了

[此贴子已经被作者于2011-9-11 23:06:33编辑过]