日期:2009-10-08 浏览次数:21255 次
'*************************************************
'函数名:getMaxOrder
'作  用:得到最大序列号
'参  数:fieldName   ----在序列号表中的字段名
'*************************************************
'函数名:idAdd
'作  用:用来增加一:比如idAdd("5")="6",idAdd("L99")="M00",idAdd("!")="!1"
'                如果是数字就到9后进位,如果是小写字母到期z后进位
'                如果是大写字母到Z后进位,其它在后面加一个1 
'参  数:id   ----需来增加的数
'返回值:增加后的数
'调用函数:addOne 一个数增加一 AddOne("5")="6",Add(9)="0",AddOne("a")="b",
'                              AddOne("z")="a",AddOne("A")="B",AddOne("Z")="A"
'*************************************************
Function AddOne(first)
Dim tempfirst
AddOne = first
intfirst = Asc(first)
If (intfirst >= 48 And intfirst < 57) Or (intfirst >= 65 And intfirst < 90) Or (intfirst >= 97 And intfirst < 122) Then
    AddOne = Chr(intfirst + 1)
    Exit Function
End If
If (intfirst = 57) Then
    AddOne = "0"
    Exit Function
End If
If (intfirst = 90) Then
    AddOne = "A"
    Exit Function
End If
If (intfirst = 122) Then
    AddOne = "a"
    Exit Function
End If
End Function
Function idAdd(id)
Dim fornt, back, strFind, strBackFind, idLen, tempid
if id="" or isNull(id) then
 iddAdd=1
 exit Function
end if
tempid = id
idLen = Len(id)
For i = 1 To idLen
    fornt = Left(id, idLen - i)
    back = Right(id, i - 1)
    strFind = Mid(id, idLen + 1 - i, 1)
    strBackFind = AddOne(strFind)
    id = fornt & strBackFind & back
    If strFind < strBackFind Then
        Exit For
    End If
    If