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.
{"Lat":-37.4754030188628,"Lng":-72.3508071899414}

1 respuesta

Respuesta
1
Loa,
Lo primero que tienes que hacer es buscar en la tabla si el rut existe, esto lo harás con la función DLookup, si te devuelve nulo es que no existe, si te devuelve falso es que existe. Harías:
If IsNull(Dlookup("[Rut]","[Nombredelatabla]","rut=form!run.value"))=true then
el código que tienes
else
MsgBox("El RUT ya existe")
end if
Me cuentas.
Hola Mister Angeles, gracias por contestar a mi pregunta.
Bueno, para empezar, sólo necesito VALIDAR el RUT, ya que para evitar ingresar duplicados tengo el RUT establecido para no tener duplicados.
Entonces, mi problema radica en que podría ingresar el Rut de alguna persona que ya esta en la tabla de registros, tan solo equivocándome en un dígito del mismo. Por ejemplo:
Registro correctos y ya registrado en la tabla SOCIOS
Nombre: Juanito Alfredo Perez Gonzalez
Rut: 15.023.893-1
Entonces podría equivocarme en algún dígito del Rut de Juanito Perez e ingresarlo nuevamente sin crear duplicado, osea:
Nombre: Juanito Alfredo Perez Gonzalez
Rut: 15.023.895-1 -> En vez de: 15.023.893-1
Entonces, así quedaría otro registro además del correcto:
Nombre: Juanito Alfredo Perez Gonzalez
Rut: 15.023.895-1
Entonces para ello, necesito que el código que me valida el Rut, sólo cumpla con la función de notificarme por medio de un cuadro de mensaje si es que el Rut ingresado es válido o es inválido, ya que en vez de eso, corrige automáticamente el dígito verificador.
Entonces... ¿Por qué en vez de digitarlo no lo seleccionas mediante un cuadro combinado y el nombre lo visualizas, automáticamente, en un cuadro de texto?
Si ya tienes el rut y el nombre, es absurdo volver a escribirlo.
En la página:
http://angelessebas.es/
En el apartado cuadros de texto, supuesto: Seleccionar datos mediante un Cuadro Combinado y visualizarlos en Cuadros de Texto
Tienes un ejemplo de como hacerlo.
Me cuentas.
Mmm bien pensado! Tiene toda la razón! Sabia sobre eso pero ni por si acaso se me había ocurrido.
Gracias experto por responder a mi duda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas