Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: lobo80 en 18 Junio 2005, 16:59 pm



Título: Necesito autogenerar codigo
Publicado por: lobo80 en 18 Junio 2005, 16:59 pm
Hola necesito una ayuda, una BD. pero quiero que al insertar un nuevo registro, se genero el codigo de la siguiente manera: P0001.P0002.P0003....P000?????.,cuando llegue a 10 que salga P0010.P0011.P0012... cuando llegue a 100 que aparezca P0100.P0101.P0102.-- y asi sucesivamente. quien me puede ayudar, estoy ttrabajando coon consultas en un BD detro del SQL, y visual Ba sic 6.0. necesito su ayuda si alguien puede ayudarme le estare muy agradecido. 8)


Título: Re: Necesito autogenerar codigo
Publicado por: TheGhost(Z) en 18 Junio 2005, 19:29 pm
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(00000000000000000100,10)
luego saldría así 0000000100


Espero que te dé una buena idea...






Título: Re: Necesito autogenerar codigo
Publicado por: Slasher-K en 20 Junio 2005, 01:40 am
La siguiente función completa con los ceros que sea necesario a la izquiera de un número.

Código:
Function FillNum(Number As Long, Digits As Integer) As String
  If Len(CStr(Number)) > Digits Then Digits = Len(CStr(Number)) + 1
 
  FillNum = String$(Digits - Len(CStr(Number)), "0") & Number
End Function

Saludos.