Suma de strings

Hola... Tengo un problema ya que debo, por código autoincrementar unas claves primarias que serian alfanuméricos, y que pueden variar dependiendo del cliente. O sea que por ejemplo para Localia seria 111aa000, el código que debería utilizar
mietnras que por ejemplo ITATEL me pediría el código a usar aa0000000
Como podría sumar todo esto.. Y hacer que se autoincremente cada vez que se le haga un trabajo para estos...
Gracias ante todo

3 Respuestas

Respuesta
1
Sólo tienes que cambiar el código del commandbutton por el que te adjunto. Ten en cuenta que está pensado sólo para minúsculas y para caracteres entre "a" y "z".
Private Sub Command1_Click()
Dim I As Integer, Txt As String, Aux As Integer
Txt = Trim(Text1.Text)
I = Len(Txt)
Do While I > 0
If Mid(Txt, I, 1) < "0" Or Mid(Txt, I, 1) > "9" Then
Aux = Asc(Mid(Txt, I, 1))
Aux = Aux + 1
If Aux >= Asc("z") Then
Mid(Txt, I, 1) = "a"
I = I - 1
Else
Mid(Txt, I, 1) = Chr(Aux)
Exit Do
End If
Else
Aux = CInt(Mid(Txt, I, 1))
Aux = Aux + 1
If Aux > 9 Then
Aux = Aux - 10
Mid(Txt, I, 1) = Aux
I = I - 1
Else
Mid(Txt, I, 1) = Aux
Exit Do
End If
End If
Loop
Text1.Text = Txt
End Sub
Esa era más o menos la solución que tenia.. pero el problema esta, en que me han pedido.. cuando por ejemplo
el código llegue a aa999 pase a ser así ab000.
Siendo variable el código que nos de el cliente. Tengo que sumar y aumetnar la parte carácter... también
Gracias por todo...
Muchas gracias voy a probarlo, con la esperanza de que me sirva gracias por tu tiempo y ayuda
Supongo que lo que pretendes es incrementar la parte numérica del código, es decir, si incrementas 111aa000 debería dar 111aa001. Si es así, te adjunto un trozo de código que lo hace, para probarlo crea un proyecto, añade un textbox y un commandbutton y pega el siguiente código:
Private Sub Command1_Click()
Dim I As Integer, Txt As String, Aux As Integer
Txt = Trim(Text1.Text)
I = Len(Txt)
Do While I > 0
If Mid(Txt, I, 1) < "0" Or Mid(Txt, I, 1) > "9" Then
I = I - 1
Else
Aux = CInt(Mid(Txt, I, 1))
Aux = Aux + 1
If Aux > 9 Then
Aux = Aux - 10
Mid(Txt, I, 1) = Aux
I = I - 1
Else
Mid(Txt, I, 1) = Aux
Exit Do
End If
End If
Loop
Text1.Text = Txt
End Sub
Pruébalo y mira si es esto lo que necesitas.
Por cierto, se me olvidó comentarte que en text1 has de introducir el alfanumérico que quieres incrementar y también has de tener en cuenta que es una rutina muy básica que no tiene control de desbordamientos ni nada parecido pero te puede servir para ver el mecanismo.
Respuesta
1
Realmente no me queda claro que quieres hacer, ¿quieres sumar letras? ¿Cómo?,
¿Quieres incrementar que valor?
¿Sera qué quieres convertirlas a números y sumar estos números?
Quieres formar una llave a partir de un string?
¿A qué te refieres com que cada vez que se le haga un trabajo...?
Para la empresa que hago el programa, trabaja con diversos clientes fabricándole productos, y estos productos tienen una clave que dicta el cliente externo,, Por lo que se darían varios tipos de códigos...
POr ejemplo en el caso de que el código a utilizar fuera
aa0000
Cuando llegara
aa9999
El siguiente código debería ser
ab0000
¿Y dónde empieza el primer código?
¿Cuál seria el ultimo?
¿Cuál es la estructura de los códigos, siempre son las dos primeras letras y lo demás números del 0-9?
Respuesta
los string no se suman se concatenan...
pero tienen que ser string... o sea que en tu ejemplo
111 y 000 tienen que ser tipo string...
o sino deberias convertirlos a string
entonces el codigo para formar 111aa000
seria algo asi
dim a as string
dim b as string
dim c as string
dim codigo as string
a = "111"
b= "aa"
c= "000"
codigo = a & b & c
NO era eso lo que quería.. por supuesto que ya se que los strings no se suman si no se concatenan.. si no ya no hubiera hecho la pregunta... en todo caso ya tengo la fórmula que me permite hacer lo que quería... Un saludo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas