以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  老师,帮助中这个代码是不是有问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=113075)

--  作者:赏金
--  发布时间:2018/1/8 16:53:00
--  老师,帮助中这个代码是不是有问题?
开发指南/foxtable编程/事件编程/表事件/datacolchanging中的实例四:

示例四

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

我们可以在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




怎么订单号不存在也显示提示框呢?


--  作者:有点甜
--  发布时间:2018/1/8 16:57:00
--  

代码是写到datacolchanging事件,而不是datacolchanged事件

 

或者你改一下代码

 

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


--  作者:赏金
--  发布时间:2018/1/8 17:04:00
--  
 & e.NewValue &  还有这两个 & 符号是什么意思? 谢了。
--  作者:赏金
--  发布时间:2018/1/8 17:10:00
--  
谢了。


[此贴子已经被作者于2018/1/8 17:58:56编辑过]

--  作者:赏金
--  发布时间:2018/1/8 17:11:00
--  
结果图片。
图片点击可在新窗口打开查看此主题相关图片如下:fox.jpg
图片点击可在新窗口打开查看

--  作者:赏金
--  发布时间:2018/1/8 18:00:00
--  
谢了。
--  作者:有点甜
--  发布时间:2018/1/8 18:14:00
--  
上传实例测试。