Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/12/2008, 03:22
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿Como validar Rut?

Cita:
Iniciado por ivan185 Ver Mensaje
esta impekable el codigo pero se cae al borrar el rut con la tecla suprimir en el tercer campo del rut se cae el software este es el error si me pueden ayudar a corregirlo

--Conversion from string "-" to type 'Integer' is not valid.

en esta linea del codigo

iNum = Mid(ElNumero, i, 1)

de todas maneras gracias.
Bueno, hay varias formas de evitar el error:
- Controlando la excepción en un bloque Try..Catch.. End Try
- Al detectar la pulsación de la tecla Supr eliminar los dos caracteres añadidos (guión y dígito verificador).
- ...

Pero teniendo en cuenta que la verificación del dígito es correcta, a mi me parece mas práctico que una vez calculado el dígito verificador, pasar el foco al siguiente control y para evitar que el usuario (cabezota él) se vuelva a posicionar en el TextBox y le dé a la tecla Supr, al tomar el foco limpiamos el TextBox.

Para ello modificamos este evento:
Código:
Private Sub TxtRut_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtRut.TextChanged
        If TxtRut.TextLength = 8 Then
            TxtRut.Text = ValidaRut(TxtRut.Text)
            My.Computer.Keyboard.SendKeys("{tab}", True)
        End If
    End Sub
Y al tomar el foco el control:
Código:
Private Sub TxtRut_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtRut.GotFocus
        TxtRut.Clear()
    End Sub