以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请问老师如何在窗口中新增记录的时候判断表中某列是否重复  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=169517)

--  作者:初心不改再说未来
--  发布时间:2021/6/19 11:36: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

这个是在窗口中新增记录时,订单地点如果重复,可以不被录入,

但是其他的几个记录还是被插入到表中了,窗口的提交按钮代码如下:

Dim nr As Row = Tables("地址表").AddNew
nr("订单名称") = e.form.controls("textbox1").Text
nr("订单地址") = e.form.controls("textbox2").Text


--  作者:有点蓝
--  发布时间:2021/6/19 11:45:00
--  
去掉datacolchanged事件代码

提交按钮
Dim dr As DataRow 
    dr = DataTables("地址表").Find("订单地点 = \'" & e.form.controls("textbox2").Text & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此订单地点已经存在!")
    else
Dim nr As Row = Tables("地址表").AddNew
nr("订单名称") = e.form.controls("textbox1").Text
nr("订单地址") = e.form.controls("textbox2").Text
    End If

--  作者:初心不改再说未来
--  发布时间:2021/6/19 12:00:00
--  
多谢老师,已解决,周末快乐~~~