以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样的判断语句怎么写?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52079)

--  作者:石四
--  发布时间:2014/6/8 22:02:00
--  这样的判断语句怎么写?

表A,“批次”列,禁止批次号重复。

 

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 pc As String = e.Form.Controls("批次").value

Dim dr As DataRow

dr = DataTables("表A").Find("[批次] = \'" & pc & "\' ")

If dr = pc Then

    MessageBox.Show("此批次号已经存在!不允许重复登记")

Else

    Tables("表A").AddNew()

End If

 

帮帮忙,谢谢。


--  作者:有点甜
--  发布时间:2014/6/8 22:04:00
--  

 不论用什么新增行,只要编写了Datacolchanging事件,就能禁止重复了。

 

 你只要给列赋值,就能判断出来了。


--  作者:石四
--  发布时间:2014/6/8 22:29:00
--  
以下是引用有点甜在2014-6-8 22:04:00的发言:

 不论用什么新增行,只要编写了Datacolchanging事件,就能禁止重复了。

 

 你只要给列赋值,就能判断出来了。

哦,但是还是希望在赋值前能提示不输入重复值。


--  作者:有点甜
--  发布时间:2014/6/8 22:35:00
--  

 这样写

 

Dim pc As String = e.Form.Controls("批次").value

Dim dr As DataRow = DataTables("表A").Find("[批次] = \'" & pc & "\' ")

If dr IsNot Nothing Then

    MessageBox.Show("此批次号已经存在!不允许重复登记")

Else

    Tables("表A").AddNew()

End If