Dígito verificador chile

Tengo una base de datos con los registros de los deudores de una empresa uno de estos campos es el rut pero necesito hacer que un cuadro de texto se autocomplete calculando el dígito verificador del rut que esta escrito en un cuadro de texto adyacente... Por ejemplo en un cuadro de texto pongo

17271790 y que el cuadro de texto siguiente calcule automaticamente el dígito verificador

1 respuesta

Respuesta
1

¿Puedes indicarme la fórmula utilizada para calcular el dígito verificador?

es una código que yo utilizaba antiguamente en vb de exel...

Public Function RutDigito(ByVal Rut As Long) As String
Dim Dígito As Integer
Dim Contador As Integer
Dim Múltiplo As Integer
Dim Acumulador As Integer
Contador = 2
Acumulador = 0
While Rut <> 0
Múltiplo = (Rut Mod 10) * Contador
Acumulador = Acumulador + Múltiplo
Rut = Rut \ 10
Contador = Contador + 1
If Contador > 7 Then
Contador = 2
End If
Wend
Dígito = 11 - (Acumulador Mod 11)
RutDigito = CStr(Dígito)
If Dígito = 10 Then RutDigito = "QUE"
If Dígito = 11 Then RutDigito = "0"
End Function

Siento el retraso, pero he tenido un fin de semana largo... el lunes en mi comunidad ha sido fiesta y me he ido unos días fuera.

Te dije lo de la fórmula para calcular el dígito para ayudarte, pero como ya tienes el código solo lo tendrás que implementar en el cuadro de texto dónde quieres calcular el dígito.

Supongamos 2 cuadros de texto, uno para el RUT y otro para el dígito, los llamaré txtRut y tstDigito respectivamente.

En el cuadro de texto txtDigito, en la acción Al recibir el enfoque, es dónde yo pondría el código: picas en la flecha de la derecha y eliges Procedimiento de Evento, después picas en el cuadrado de los ... para abrir el generador de código y ahí es dónde tienes que escribirlo.

Para hacer referencia al valor que hayas puesto en el cuadro de texto txtRUT es:

Form!txtRUT.Value

en este caso el cuadro de texto donde se escribe el rut se llama "RUT" y el cuadro donde debería aparecer el dígito verificador se llama "DÍGITO VERIFICADOR", me podrías indicar en que lugar debo cambiar los datos para que el código me fusione ya que me tiene estresado solo me arroja errores...

Lo primero... no te estreses, a ver si entiendo la función del cálculo y verás como lo conseguimos,

Veo que tienes 4 variables, dígito, contador, múltiplo y acumulador.

Entiendo que quieres que mientras RUT (lo digitado en el cuadro de texto RUT) sea <>0 te haga:

Múltiplo=resto de dividir RUT entre 10 multiplicado por contador (en principio por 2)

Después igualas la variable Acumulador (que en principio es 0) a Acumulador + múltiplo

Después divides RUT entre 10 ---> aquí es donde creo que tendrías que utilizar otra variable:

Dim vRUT as double

vRUT=Form!RUT.Value

Luego incrementas el contador, bien, si contador es >7 vuelves a inicializarlo a 2

¿Todo esto mientras RUT sea <>0 pero si es =0? aquí es dónde me pierdo...

¿Qué es RutDigito? ¿Qué es Dígito?

Explícame bien como se calcula el dígito y... verás como lo soluccionamos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas