prefixal=HYPY([原材料类型])
me.采购单号=AutoNumbtr("采购表","采购单号",3,"yyyy")
Function
HZPY(hzstr As String) As String
Dim p0
As String, C As String, str As String
Dim I As
Integer, J As Integer
p0 =
"吖八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗"
For I =
1 To Len(hzstr)
str = Mid(hzstr, I, 1)
If Asc(str) > 0 Then
C
= str
Else
For J = 1 To 26
If Mid(p0, J, 1) > str Then
C = Chr(63 + J)
Exit For
End If
Next
End If
HZPY = HZPY + C
Next
End
Function
Public Function
AutoNumStr(TableName As String, _
FieldName As
String, _
Digit As Integer, _
Optional Prefixal As
String, _
Optional DateFormat
As String)
On Error GoTo ErrorHandler
Dim strPrefixal As String
Dim strTemp As String
strPrefixal = Prefixal
If DateFormat <> "" Then strPrefixal = strPrefixal &
Format(Date, DateFormat) ‘前缀加日期格式
If strPrefixal <> "" Then strTemp = "[" &
FieldName & "] Like '" & strPrefixal & "*'" ’前缀加日期格式放在前面,[" & FieldName & "]为字段值。如:XS*
strTemp = Nz(DMax(FieldName, TableName, strTemp), "0") ’获得最大的字段名
strTemp = Val(Mid(strTemp, Len(strPrefixal) + 1)) + 1 '前缀为5位,那么从第六位开始,剔除前缀,取得后面的数加1
strTemp = Format(strTemp, String(Digit, "0")) ’ 格式里strTemp已经是最大的数加1了,在这里尚需设定格式.
AutoNumStr = strPrefixal & strTemp
Done:
Exit Function
ErrorHandler:
MsgBox "错误编号: #" & Err & vbCrLf
& _
"错误来源: " & Err.Source
& vbCrLf & _
"错误信息: " &
Err.Description, vbCritical, "出错"
Resume Done
End Function