Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Generador de codigos

Estas en el tema de Generador de codigos en el foro de Visual Basic clásico en Foros del Web. Hola foreros, a ver si me pueden dar una manito con este codigo para generar ID, miren lo que tengo es esto: Public Function Generar_Id_Llamada() ...
  #1 (permalink)  
Antiguo 04/12/2006, 10:27
Avatar de Stefanie  
Fecha de Ingreso: septiembre-2006
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 17 años, 7 meses
Puntos: 0
Generador de codigos

Hola foreros, a ver si me pueden dar una manito con este codigo para generar ID, miren lo que tengo es esto:

Public Function Generar_Id_Llamada() As String
On Error GoTo MiError
LLamadaDAO
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = cn
.Source = "SELECT TOP 1 Id_Llamada FROM LLamada ORDER BY Id_Llamada Desc"
.CursorLocation = adUseClient
.Open
End With

If TypeName(rs) = "Recordset" And Not rs.EOF Then
ultimo = rs(0)
Else
ultimo = 0
End If

If ultimo = 0 Then
Generar_Id_Llamada = "T0000"
Else
num = CInt(Right(Trim(ultimo), 3)) + 1
If Len(CStr(num)) = 1 Then
numcad = "000" + CStr(num)
ElseIf Len(CStr(num)) = 2 Then
numcad = "00" + CStr(num)
ElseIf Len(CStr(num)) = 3 Then
numcad = CStr(num)
End If
Generar_Id_Llamada = Left(Trim(ultimo), 3) + CStr(numcad)
End If
Set rs = Nothing
Exit Function
MiError:
MsgBox Err.Description, vbCritical, "Error"
End Function


Pero algo esta funcionando mal porque lo que obtengo como IDs son los siguientes: T0000, T000001, T000002 ..... T000009 .... T000021, T000022 .... T000099, T00100, T00101, T00102... T00560 ... T00840 .. etc
como ven se empieza a acortar .... la cantidad de cifras .. todavia no llego al mil pero asumo q se ira acortando un cero mas y tendre T01109 ... T09999 ... asi sucesivamente ... y lo que yo quiero es q simplemente salga : T000000, T000001 .... T00009 ... T000010 ... T000099 .... T000100 ... T000999, T001000 ... T009999 .... T010000 ... T099999 .... etc
Espero puedan darme una ayuda para poder corregir este codigo!!
Gracias!!!

Última edición por Stefanie; 09/12/2006 a las 19:20
  #2 (permalink)  
Antiguo 04/12/2006, 11:41
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
prueba con

Variable = "T" & trim(Format("000000" & trim(NumCad),"000000"))

x = numero de digitos, en este caso 6
o con Right("0000000" & trim(NumCad), x)
  #3 (permalink)  
Antiguo 09/12/2006, 19:23
Avatar de Stefanie  
Fecha de Ingreso: septiembre-2006
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Generador de codigos

Te refieres a reemplazar todo el codigo por eso? :s o en q parte? ... no entiendo bien ...
  #4 (permalink)  
Antiguo 11/12/2006, 06:57
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Generador de codigos

Public Function Generar_Id_Llamada() As String
On Error GoTo MiError
LLamadaDAO
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = cn
.Source = "SELECT TOP 1 Id_Llamada FROM LLamada ORDER BY Id_Llamada Desc"
.CursorLocation = adUseClient
.Open
End With

If TypeName(rs) = "Recordset" And Not rs.EOF Then
ultimo = rs(0)
Else
ultimo = 0
End If

Generar_Id_Llamada = "T" & Right("0000000" & trim(ultimo + 1), 6)

Set rs = Nothing
Exit Function
MiError:
MsgBox Err.Description, vbCritical, "Error"
End Function
  #5 (permalink)  
Antiguo 12/12/2006, 05:57
Avatar de Stefanie  
Fecha de Ingreso: septiembre-2006
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Generador de codigos

ohhh okis chvre :D gracias .. lo probare asi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:55.