Cálculo de Dígito de Verificación
Access
Publicado el 29 de Septiembre del 2019 por Sebastian
2.329 visualizaciones desde el 29 de Septiembre del 2019
Tener activas las librerías ADO, DAO, OLE Automation en el vba for applications del access
Function calcular_dig_ver()
Set rs1 = CurrentDb.OpenRecordset("[Nombre de Tabla]", dbOpenDynaset)
Do Until rs1.EOF
rs1.Edit
apor = UCase(rs7!"Nombre del Campo con datos a evaluar")
digito = UCase(rs7!"Nombre del Campo a insertar datos")
Dim TipoRet, lnRetorno, Arreglo_PA(15), WSuma, WDato, WDig_Ver As Integer
TipoRet = VarType(Nit)
Select Case TipoRet
Case TipoRet = "C"
Nit = apor
Case TipoRet = "N" Or TipoRet = "Y"
Nit = apor
End Select
Arreglo_PA(1) = 71
Arreglo_PA(2) = 67
Arreglo_PA(3) = 59
Arreglo_PA(4) = 53
Arreglo_PA(5) = 47
Arreglo_PA(6) = 43
Arreglo_PA(7) = 41
Arreglo_PA(8) = 37
Arreglo_PA(9) = 29
Arreglo_PA(10) = 23
Arreglo_PA(11) = 19
Arreglo_PA(12) = 17
Arreglo_PA(13) = 13
Arreglo_PA(14) = 7
Arreglo_PA(15) = 3
lnRetorno = 0
WDato = Right(Space(15) + Trim(apor), 15)
WSuma = 0
WDig_Ver = 0
For i = 1 To 15
WSuma = WSuma + (Val(Mid(WDato, i, 1)) * Arreglo_PA(i))
Next i
WSuma = WSuma Mod 11
If WSuma = 0 Or WSuma = 1 Then
lnRetorno = WSuma
Else
lnRetorno = 11 - WSuma
End If
If TipoRet = "C" Then
DV = Trim(Str(lnRetorno))
Else
DV = lnRetorno
End If
rs7.Edit
rs7!Dig_Verfi = lnRetorno
rs7.Update
Nombre = rs7!Dig_Verfi
rs7.MoveNext
'Set Nit = Nothing
Nit = (vbEmpty)
Loop
rs7.Close
End Function
Comentarios sobre la versión: 1 (0)
No hay comentarios