Cita:
Iniciado por ivan185
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