Necesito validar el dígito identificador de un RUT, es decir que al introducir los datos en un campo de texto de un formulario con la mascara 00.000.000\-A;0;_ me de un mensaje de error cada vez que el identificador después del guion sea incorrecto.
1 respuesta
Respuesta de luponx
1
1
luponx, Luis Ponce Ingeniero y Técnico de sistemas (software)
Esto permite validar la entrada de números del RUN **************************************************************** Private Sub Run_KeyPress(KeyAscii As Integer) Dim Caracteres As String Dim Contador As Integer Dim respuesta As String If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 Or KeyAscii = 13 Then Else respuesta = MsgBox(" Ingrese solo números ", vbExclamation, " Advertencia") End If Contador = Contador + 1 If Len(Run.Text) = 8 Then KeyAscii = 0 End If End Sub ***************************************************************** Aqui se valida ***************************************************************** Private Sub Run_LostFocus() Dim rut As Long Dim aa As String rut = Val(RunEstudiante.Value) RutDigito rut End Sub Public Function RutDigito(ByVal rut As Long) As String Dim Digito As Integer Dim Contador As Integer Dim Multiplo As Integer Dim Acumulador As Integer Contador = 2 Acumulador = 0 While rut <> 0 Multiplo = (rut Mod 10) * Contador Acumulador = Acumulador + Multiplo rut = rut \ 10 Contador = Contador + 1 If Contador = 8 Then Contador = 2 End If Wend Digito = 11 - (Acumulador Mod 11) RutDigito = CStr(Digito) If Digito = 10 Then RutDigito = "K" If Digito = 11 Then RutDigito = "0" dg = RutDigito Rem MsgBox (" El RUN HA SIDO VALIDADO") End Function ***************************************************************** Para estas funciones se usaron dos cuadros de texto run y dg puedes usar el msgbox para mostrar mensajes de validación. También puedes encontrar ayuda en páginas de VB por "validación de campos de texto" y " validación de rut en VB"
Ok, muchas gracias, es una buena alternativa y esta bien explicada. Voy a implementarla si no puedo encontrar la solución en un solo campo de texto. Saludos y gracias de nuevo.