Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/12/2008, 10:45
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
ta bueno el arreglo pero hay otra observacion pero siempre constructiva...
que pasa si un digitador solicita el rut a una persona y este le dicta mal su rut. eje:
13952269..
y dicta
13952369..
el valida rut genera automaticamente el dv. pero siempre es algo valido, pero no necesariamente es el real de la persona. la idea es q se compare con el digito dictado por la persona.
si me explique bien?...
Bueno, el ejercicío anterior era para generar automáticamente el dígito de validación, pero si lo que queremos es comprobar si el Rut introducido es correcto, modificamos un poco la función:

Código:
Public Function ComprobarRut(ByVal ElNumero As String) As Boolean
        Dim Resultado As String = ""
        Dim Multiplicador As Integer = 2
        Dim iNum As Integer = 0
        Dim Suma As Integer = 0

        For i As Integer = 8 To 1 Step -1
            iNum = Mid(ElNumero, i, 1)
            Suma += iNum * Multiplicador
            Multiplicador += 1
            If Multiplicador = 8 Then Multiplicador = 2
        Next
        Resultado = CStr(11 - (Suma Mod 11))
        If Resultado = "10" Then Resultado = "K"
        If Resultado = "11" Then Resultado = "0"
        If ElNumero.EndsWith(Resultado) Then
            Return True
        Else
            Return False
        End If
    End Function
Eliminamos el evento TxtRut_TextChanged y ponemos el siguiente, en un Button o en el evento de validación del TextBox
(aquí ya el Text tiene el formato "nnnnnnnn-d")

Código:
If ComprobarRut(TxtRut.Text) = False Then
            MsgBox("El Rut no es correcto")
            TxtRut.Focus()
        Else
            My.Computer.Keyboard.SendKeys("{tab}", True)
        End If