Tengo un formulario que valida un RUT (es un numero). Este numero lo debe buscar en una hoja, llamada "base de datos" si encuentra este número, debería enviar un mensaje que el cliente existe y dejar pasar al siguiente formulario, en caso contrario debería indicar que el RUT no existe, que debe volver a digitarlo Te puedo enviar el archivo a tu correo mi correo es [email protected]
Gracias Carolina
1 respuesta
Respuesta
1
1
Anónimo
Ya que te he enviado la solución a tu correo es bueno que quede registrado en este sitio, para futuras consultas. La validación de RUT se puede realizar en diferentes lenguajes y también sirve para validar cualquier ID con un formato establecido (Ya que en cada país el formato es distinto) La solución que se requiere es para una planilla EXCEL. Para ello debes seguir los siguientes pasos: Nuevo Libro Excel Abres el editor de Macros (o también llamado Visual Basic). ¿Herramientas? ¿Macros? Editor de Macros o en su atajo Alt+F11 ¿Una vez abierto el editor vas a Insertar? Módulo. Copias el siguiente código: Public Function dvrut(Rut) ' lo unico que no acepta son letras Rut = Replace("0000" & Rut, ".", "", 1) If InStr(1, Rut, "-") > 0 Then Rut = Left(Rut, InStr(1, Rut, "-") - 1) Rut = Right(Rut, 8) Suma = 0 For i = 1 To 8 Suma= suma + Val(Mid(Rut, I, 1)) * Val(Mid("32765432", I, 1)) Next I Dv= 11 - (suma Mod 11) If dv = 10 Then dv = "k" If dv = 11 Then dv = 0 Dvrut= dv End Function También puedes probar con el siguiente código: Function dv(a) j = 2 For i = 0 To Len(a) - 1 Aux = aux + Val(Mid$(a, Len(a) - I, 1)) * j If j > 6 Then j = 2 Else j = j + 1 End If Next I Aux1 = 11 - (aux Mod 11) If aux1 < 10 Then Dv= aux1 Else Dv= "K" End If End Function Vuelves al Libro Excel Asumiendo que el número (lo que va antes del Dígito Verificador) está en la celda A1 te posicionas en la celda A2 y escribes =dvrut(A1), la cual te devolverá el DV Otra forma de usar la función es comparándola con un resultado dado, por ejemplo posicionemos en la celda C1 y tipeamos: =SI(dvrut(A1)=B1;"valido";"invalido") En el caso de programar en PHP el codigo es el siguiente: <?php function dv($r){$s=1;for($m=0;$r!=0;$r/=10)$s=($s+$r%10*(9-$m++%6))%11; return chr($s?$s+47:75);} ?> En el caso de ASP es: Function codigo_veri(rut) tur=strreverse(rut) mult = 2 for i = 1 to len(tur) if mult > 7 then mult = 2 end if suma = mult * mid(tur,i,1) + suma mult = mult +1 next valor = 11 - (suma mod 11) if valor = 11 then codigo_veri = "0" elseif valor = 10 then codigo_veri = "k" else codigo_veri = valor end if end function y en el caso de VISUAL BASIC es el siguiente: 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" End Function PD: No olvides calificar mi respuesta y cerrar tu pregunta.