Cálculo de Dígito de Verificación
Access
Publicado el 29 de Septiembre del 2019 por Sebastian
2.520 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.Editapor = 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 = aporCase TipoRet = "N" Or TipoRet = "Y"
Nit = aporEnd 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 = 0WDato = Right(Space(15) + Trim(apor), 15)
WSuma = 0 WDig_Ver = 0 For i = 1 To 15WSuma = WSuma + (Val(Mid(WDato, i, 1)) * Arreglo_PA(i))
Next i
WSuma = WSuma Mod 11If WSuma = 0 Or WSuma = 1 Then
lnRetorno = WSumaElse
lnRetorno = 11 - WSuma
End If
If TipoRet = "C" Then
DV = Trim(Str(lnRetorno))
Else
DV = lnRetornoEnd If
rs7.Editrs7!Dig_Verfi = lnRetorno
rs7.UpdateNombre = rs7!Dig_Verfi
rs7.MoveNext 'Set Nit = Nothing
Nit = (vbEmpty)
Loop
rs7.CloseEnd Function
Comentarios sobre la versión: 1 (0)
No hay comentarios