以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码提示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110319)

--  作者:有点甜
--  发布时间:2017/11/30 22:07:00
--  

代码改成下面代码,代码不要写到datacolchanging事件,要写到datacolchanged事件

 

Select Case e.DataCol.name
    Case "毛坯编码","加工工序"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("毛坯编码") = False AndAlso dr.IsNull("加工工序") = False Then
            If e.DataTable.Compute("Count([_Identify])","毛坯编码 = \'" & dr("毛坯编码") & "\' And 加工工序 = \'" & dr("加工工序") & "\'") > 1 Then
                MessageBox.Show("已经存在相同工序行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入
            End If
        End If
End Select


--  作者:有点甜
--  发布时间:2017/11/30 23:22:00
--  

那你修改表名

 

e.DataTable 改成 datatables("工序跟踪表")

 

同样的代码已经给你写过,你要看懂,灵活变通啊。


--  作者:有点甜
--  发布时间:2017/12/1 9:14:00
--  
以下是引用nuoyan88在2017/11/30 23:53:00的发言:
老师,之前 改过成以下的, 写在了加工工序 这个控件TextChanged的事件。但是一直不能达到3楼说的那种效果,请老师帮忙看看,谢谢 

Dim str1 As String = e.form.controls("工序号").text

Dim str2 As String = e.form.controls("毛坯编码").text

If DataTables("工序跟踪表").Compute("Count([_Identify])","毛坯编码 = \'" & str2 & "\' And 加工工序 = \'" & str2 & "\'") > 0 Then

    MessageBox.Show("已经存在相同工序行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

End If

 

无语

 

Dim str1 As String = e.form.controls("工序号").text

Dim str2 As String = e.form.controls("毛坯编码").text

If DataTables("工序跟踪表").Compute("Count([_Identify])","毛坯编码 = \'" & str2 & "\' And 加工工序 = \'" & str1 & "\'") > 0 Then

    MessageBox.Show("已经存在相同工序行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

End If