trnN2S = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Procedure n2s(tNR, nLen) Local nMod, numdat, sl nMod=Len(This.trnN2S) numdat=tNR sl="" Do While numdat>0 ns=numdat%nMod sl=Substr(This.trnN2S,ns+1,1)+sl numdat=Int(numdat/nMod) Enddo If !Empty(nLen) And Len(sl)<nLen sl=Padl(sl, nLen, Left(This.trnN2S,1)) Endif Retu slIn base26 you'd need 5+6 characters for this; in base 52 (i.e. in case Firebird is case sensitive) it's 4+5.