没有必要弄全局变量保存 zjh jb zj 等。DataFormat事件也是多余的
Dim temp_zjh = Tables("表A").Current("成品号")
Dim temp_zj = Tables("表A").Current("组件序号")
Dim dr2 As Row = Tables("表A").AddNew()
Dim s As String = temp_zj
Dim idx As Integer = s.LastIndexOf(".")
Dim pstr As String = ""
If idx > -1 Then pstr = s.SubString(0, idx+1)
Dim num As Integer = s.SubString(idx+1)
Dim nnum As String = pstr & (num+1)
dr2("组件序号") = nnum
'加工级别
Dim dr,dr1 As DataRow
dr = DataTables("表A").Find("成品号 = '" & temp_zjh & "' And 组件序号 = '" & temp_zj &"'","加工级别") '找出编号
dr1 = DataTables("表A").Find("成品号 = '" & temp_zjh & "'" ,"加工级别") '找出编号
If dr IsNot Nothing Then '如果找到的话
jb2 = dr("加工级别")
Else
If dr1 IsNot Nothing Then '如果找到的话
jb2 = dr("加工级别") + 1
Else
jb2 = 1
End If
End If
dr2("加工级别") = jb2
zj=Nothing
jb=Nothing
zjh=Nothing