我上传的就是按这个帮助弄的。但是就是不对,麻烦你帮忙看看,是那出错了呢?
假定产品表有型号和规格两列,禁止输入型号和规格相同的产品,可以将这个表的DataColChanging事件代码设置为:
Select Case e.DataCol.name
Case "型号","规格"
Dim xh As String
Dim gg As String
If e.DataCol.Name= "型号" Then
xh = e.NewValue
gg = e.DataRow("规格")
Else
gg = e.NewValue
xh = e.DataRow("型号")
End If
If xh > "" AndAlso gg > "" Then
Dim dr As DataRow = e.DataRow
If e.DataTable.Find("型号 = '" & xh & "' And 规格 = '" & gg & "'") IsNot Nothing Then
MessageBox.Show("已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancel = True
End If
End If
End Select
上面的代码有点繁琐。
我们可以变通一下,改为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