以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]禁止重复的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121571)

--  作者:81538475
--  发布时间:2018/7/9 16:48:00
--  [求助]禁止重复的问题
用下面的代码在 项目名称 列禁止输入重复值 ,但是就无法undo了。undo 之后会提示此项目已存在,应该如何处理呢。
如果吧SQLfind 改成 FIND 可以解决后退的问题。但是会导致新的值与未加载出来的数据库内的名称重名。

If e.DataCol.Name = "项目名称"  Then
    Dim dr1  As  DataRow
        dr1 = e.DataTable.SQLFind("项目名称 = \'" & e.NewValue &  "\'")
        If dr1 IsNot Nothing Then
            MessageBox.Show("此项目已存在!","温馨提示:")
            e.Cancel =  True
        End  If
    
End  If

[此贴子已经被作者于2018/7/9 16:47:53编辑过]

--  作者:81538475
--  发布时间:2018/7/9 17:20:00
--  
老大们帮忙看看啊
--  作者:有点甜
--  发布时间:2018/7/9 17:35:00
--  

sqlfind不会导致你不能用undo。如果不能用,说明你把表格保存了,保存以后自然不能undo。


--  作者:81538475
--  发布时间:2018/7/9 17:51:00
--  
不是不能用undo呀。  是用了之后会出发 MessageBox.Show("此项目已存在!","温馨提示:")
--  作者:有点甜
--  发布时间:2018/7/9 18:11:00
--  
以下是引用81538475在2018/7/9 17:51:00的发言:
不是不能用undo呀。  是用了之后会出发 MessageBox.Show("此项目已存在!","温馨提示:")

 

修改undo的操作,把事件禁用一下,如

 

SystemRady = False

\'这里执行undo的代码

SystemReady = True


--  作者:81538475
--  发布时间:2018/7/9 18:22:00
--  
多谢了。