Validar RUT Chile
Le cuento que me he cabeceado demasiado con este problema:
Tengo una base de datos en la cual necesito validar el RUT para así evitar agregar a la misma persona cambiando algún dígito del RUT por error. El código VB funciona bien, pero el problema es que, una vez ingresado el RUT, el código en vez de decirme si el RUT ingresado esta correcto o incorrecto, cambia automáticamente el dígito verificador. Osea, el código lo corrige en vez de notificarme su validez. Entonces, esto podría llevarme a ingresar el RUT y crear valores duplicados, y esto sería una pérdida de tiempo.
- Información adicional:
El formulario tiene dos cuadros de textos independientes: RUN y DG
RUN donde es ingresado el cuerpo del rut el cual esta en formato 00.000.000 y
DG donde es ingresado el dígito verificador, el cual el código corrige en vez de notificarme su validez.
- Código VB es el siguiente:
Private Sub dg_LostFocus()
Dim rut As Long
Dim aa As String
rut = Val(run.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
MsgBox (" El RUN HA SIDO VALIDADO")
End Function
Esperando una pronta respuesta y desde ya gracias, se despide:
Kevin.
Tengo una base de datos en la cual necesito validar el RUT para así evitar agregar a la misma persona cambiando algún dígito del RUT por error. El código VB funciona bien, pero el problema es que, una vez ingresado el RUT, el código en vez de decirme si el RUT ingresado esta correcto o incorrecto, cambia automáticamente el dígito verificador. Osea, el código lo corrige en vez de notificarme su validez. Entonces, esto podría llevarme a ingresar el RUT y crear valores duplicados, y esto sería una pérdida de tiempo.
- Información adicional:
El formulario tiene dos cuadros de textos independientes: RUN y DG
RUN donde es ingresado el cuerpo del rut el cual esta en formato 00.000.000 y
DG donde es ingresado el dígito verificador, el cual el código corrige en vez de notificarme su validez.
- Código VB es el siguiente:
Private Sub dg_LostFocus()
Dim rut As Long
Dim aa As String
rut = Val(run.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
MsgBox (" El RUN HA SIDO VALIDADO")
End Function
Esperando una pronta respuesta y desde ya gracias, se despide:
Kevin.
{"Lat":-37.4754030188628,"Lng":-72.3508071899414}
1 respuesta
Respuesta
1