Programación General > Visual Basic 6.0 e inferiores
Valida RUT que envía DESBORDAMIENTO :( porfis?
will_lover:
Buenas tardes, junto con saludarles, quisiera pedirles un poco de ayuda.
Tengo el siguiente codigo, que funciona bastante bien, pero hay un punto en el que envía un DESBORDAMIENTO ... quien me puede ayudar a resolver esto porfis... se agradece.
Private Sub txtRut_Change()
If txtRut.Text = "" Then
txtDigito.Text = ""
End If
Dim Vari1, Vari2, Vari3 As Integer
Vari3 = 2
For I = 0 To Len(txtRut) - 1 ' en esta linea envía el DESBORDAMIENTO!.
If Left(Right(txtRut, I + 1), 1) <> "." Then
Vari1 = Vari1 + Left(Right(txtRut, I + 1), 1) * Vari3
Vari2 = Vari1 Mod 11
Select Case Vari2
Case 0
txtDigito.Text = "0"
Case 1
txtDigito.Text = "K"
Case Else
txtDigito.Text = 11 - Vari2
End Select
If Vari3 = 7 Then
Vari3 = 2
Else
Vari3 = Vari3 + 1
End If
End If
Next
End Sub
RHL:
Es porque el valor devuelto a tu variable I es demaciado grande cambia el tipo de dato de la variable I a un tipo long
will_lover:
OK... muchisimas gracias..
pero te puedo molestar otra vez¿?¿' sorry... pero mi experiencia programando no ha sido mucha..
mira en esta linea : CAL1 = CAL1 + Left(Right(txtRut, I + 1), 1) * CAL3 me dice "Error 13' en tiempo de ejecución LOS TIPOS NO COINCIDEN-" Y SI TE DAS CUENTA EN EL CODIGO QUE PEDI AYUDA ANTERIORMENTE... CAL1, CAL2, CAL3 SON DE TIPO INTEGER... QUE ESTA MAL AHI¿?¿
mUCHAS GRACIAS..
;)
RHL:
Es porque estas intentando sumar una valor integer ( tus variables ) y una variable de tipo cadena...
Si digamos que tienes una cadena de este tipo: "abcd123"
y quieres hacer una operacion aritmetica con el 2 que se encuentre en la cadena, tenes que usar la funcion CInt para
que lo pueda convertir a valor entero y podas hacer operaciones aritmeticas
will_lover:
aun no me funciona.. :(... jejejje pero gracias... lo seguiré intentando!. :D
Navegación
[#] Página Siguiente
Ir a la versión completa