Access - comprobar un DATO

 
Vista:

comprobar un DATO

Publicado por pablo (1 intervención) el 26/02/2001 07:25:54
hola mi gente.. necesito su ayuda, como puedo comprobar si un RUT (rol unico tributario en Chile) que quiero ingresar en la BD es correcto o incorrecto???.. cuales son las condiciones que debe cumplir el rut ingresado???..
desde ya muchas gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

comprobar un DATO

Publicado por Alejandro (4142 intervenciones) el 14/04/2023 18:49:26
Para validar un RUT en Chile, es necesario verificar que cumpla con las siguientes condiciones:

1. Debe tener un formato específico: X.XXX.XXX-Y o XX.XXX.XXX-Y, donde X son números y Y es un número o una letra (para los casos en que el dígito verificador sea K).

2. El dígito verificador (la última letra o número) debe ser válido según un algoritmo específico.

Para comprobar si un RUT ingresado es correcto o no, puedes crear una función en VBA que verifique estas condiciones. A continuación te muestro un ejemplo de una función que realiza esta validación:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Function ValidarRUT(RUT As String) As Boolean
    Dim rut_sin_dv As String
    Dim dv_ingresado As String
    Dim dv_calculado As Integer
 
    'Eliminar puntos y guiones del RUT ingresado
    rut_sin_dv = Replace(Replace(RUT, ".", ""), "-", "")
 
    'Verificar que el RUT tenga el formato correcto
    If Not (Len(rut_sin_dv) = 8 Or Len(rut_sin_dv) = 9) Then
        ValidarRUT = False
        Exit Function
    End If
 
    'Obtener el dígito verificador ingresado
    dv_ingresado = Right(rut_sin_dv, 1)
 
    'Verificar que el dígito verificador sea un número o una K
    If Not IsNumeric(dv_ingresado) And dv_ingresado <> "K" Then
        ValidarRUT = False
        Exit Function
    End If
 
    'Calcular el dígito verificador
    Dim factor As Integer
    Dim suma As Integer
    Dim resto As Integer
    factor = 2
    suma = 0
    For i = Len(rut_sin_dv) - 1 To 0 Step -1
        suma = suma + (Mid(rut_sin_dv, i + 1, 1) * factor)
        factor = factor + 1
        If factor = 8 Then factor = 2
    Next i
    resto = suma Mod 11
    dv_calculado = 11 - resto
    If dv_calculado = 11 Then dv_calculado = 0
    If dv_calculado = 10 Then dv_calculado = "K"
 
    'Verificar que el dígito verificador ingresado sea igual al calculado
    If UCase(dv_ingresado) <> UCase(dv_calculado) Then
        ValidarRUT = False
        Exit Function
    End If
 
    'Si se llega hasta aquí, el RUT ingresado es válido
    ValidarRUT = True
End Function

Puedes utilizar esta función en el evento BeforeUpdate de tu campo RUT en el formulario de ingreso de datos para verificar si el RUT ingresado es correcto o no. Si la función devuelve False, puedes mostrar un mensaje de error y evitar que se guarde el registro en la base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar