OK.. esto te puede dar una idea

esto es un trabajo que hice
' NoProf = numero de proforma ok
' rsNProforma = tabla de la proforma ok
Dim NoProf As String
Dim rsNProforma As New Recordset
rsNProforma.Open "SELECT * FROM EncabezadoProforma", dbConex, adOpenStatic, adLockOptimistic
rsNProforma.MoveLast
NoProf = rsNProforma(0)
Text5.Text = Right("000000000" & Val(NoProf) + 1, 10)
rsNProforma.Close
**explico..
el punto esta en esta parte:
Text5.Text = Right("000000000" & Val(NoProf) + 1, 10)**supongamos que la longitud de tu código es 10 ok.. por eso se agregó 10 ceros (0000000000). luego le sumamos 1 al número actual de regitrso.. si vas en el registro 100 (cien). al juntalor sería así: 0000000000"&"0000000100 la pc lo leería todo juento-- ose aasí 00000000000000000100
Luego de todo este valor solo tomamos los 10 primeros enpezando por la derecha... porque codigo es de longitud 10 ok.
por eso se usa: Right(0000000000
0000000100,10)
luego saldría así 0000000100
Espero que te dé una buena idea...