Dim bh As String = "TQD" & Format(dr2("sys_日期"),"yyyyMMdd") '编号的前缀是8位
If dr2("清单ID").StartsWith(bh) = False '如果编号的前8位不符
Dim max As String
Dim idx As Integer
max = dr2.Compute("Max(清单ID)","sys_日期 = #" & dr2("sys_日期") & "# And [_Identify] <> " & dr2("_Identify")) '取得该天的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(12,5)) + 1 '既然编号的长度是14位,从第13个字符开始取5个字符,是啥子意思
Else
idx = 1 '否则顺序号等于1
End If
dr2("清单ID") = bh & "-" & Format(idx,"00000") ‘8+1+5 = 14 ,编号的长度是14位
End If
所以:
idx = CInt(max.Substring(12,5)) + 1
也许应该改为:
idx = CInt(max.Substring(9,5)) + 1