修改了一下:
If e.DataCol.Name = "品牌" Then
Dim dr As DataRow
Dim Filter As String
dr = DataTables("表A").Find("品牌 = '" &e.newValue & "'")
If dr IsNot Nothing Then '如果找到的话
Tables("表A").Filter = "品牌 = '" & e.NewValue & "'"
Dim r As Integer = CurrentTable.Rows.Count-1
If r > 0 Then
Return
End If
End If
End If
If e.DataCol.Name = "品牌" Then
If e.NewValue > "" Then
Dim s1 As String = GetPy(e.NewValue,True)
Dim s2 As String
Dim cs() As String = New String() {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}
Dim ns() As String = new String(){15,52,54,13,33,12,11,21,43,22,23,24,25,51,44,45,35,32,14,31,42,53,34,55,41,26}
For i As Integer = 0 To s1.length -1
Dim s3 As String = s1.Chars(i)
If Char.IsNumber(s3) = False Then
For n As Integer =0 To cs.Length -1
If cs(n) = s3 Then
s3 = ns(n)
Exit For
End If
Next
End If
s2 = s2 & s3
Next
s2 = s2.PadRight(4,"0")
s2 = s2.SubString(0,4)
Dim drs As List(of DataRow) = e.DataTable.Select("编号 Like '" & s2 & "*' And [_Identify] < " & e.DataRow("_Identify"))
If drs.Count = 0
e.DataRow("编号") = s2 & "01"
Else
e.DataRow("编号") = s2 & Format(drs.count + 1,"00")
End If
Else
e.DataRow("编号") = Nothing
End If
End If
去除了提示框,转为默认:品牌已有过记录的,编号为空;新品牌编号自动新增。
另有一个问题请教:如果“编号列”编号只能由品牌自动产生,不能直接编缉,但编号可以复制到其它地方,请问如何设置?