Já fiz várias pesquisas mas não consegui encontrar. Alguém me pode ajudar com código de calculo para digito de controlo.
São 6 dígitos e o ano está separado e são 2 dígitos.
Assim:
São 6 dígitos e o ano está separado e são 2 dígitos.
Assim:
Function dg(str6Hifen2 As String) As Byte
'calcula dígito verificador para números do tipo 123456-78
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' código criado por Alexandre Neves, do Fórum MaximoAccess '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Error Resume Next
Dim lngIntermedio As Long
If Not str6Hifen2 Like "######-##" Then
err.Raise 6
MsgBox "Erro " & CStr(err.Number) & " " & err.Description, , str6Hifen2
err.Clear
Else
lngIntermedio = 2 * Mid(str6Hifen2, 9, 1)
lngIntermedio = lngIntermedio + 3 * Mid(str6Hifen2, 8, 1)
lngIntermedio = lngIntermedio + 4 * Mid(str6Hifen2, 6, 1)
lngIntermedio = lngIntermedio + 5 * Mid(str6Hifen2, 5, 1)
lngIntermedio = lngIntermedio + 6 * Mid(str6Hifen2, 4, 1)
lngIntermedio = lngIntermedio + 7 * Mid(str6Hifen2, 3, 1)
lngIntermedio = lngIntermedio + 8 * Mid(str6Hifen2, 2, 1)
lngIntermedio = lngIntermedio + 9 * Mid(str6Hifen2, 1, 1)
lngIntermedio = lngIntermedio Mod 11
If lngIntermedio = 0 Or lngIntermedio = 1 Then
dg = 0
Else
dg = 11 - lngIntermedio
End If
End If
End Function
Function dg(str6Hifen2 As String) As Byte
'calcula dígito verificador para números do tipo 123456-78
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' código criado por Alexandre Neves, do Fórum MaximoAccess '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Error Resume Next
If Not (str6Hifen2 Like "######-##" Or str6Hifen2 Like "######/##") Then
err.Raise 6
MsgBox "Erro " & CStr(err.Number) & " " & err.Description, , str6Hifen2
err.Clear
Else
dg = ((Val(Left(str6Hifen2, 1))) * 10 + (Val(Mid(str6Hifen2, 2, 1))) * 9 + (Val(Mid(str6Hifen2, 3, 1))) * 8 + (Val(Mid(str6Hifen2, 4, 1))) * 7 + (Val(Mid(str6Hifen2, 5, 1))) * 6 + (Val(Mid(str6Hifen2, 6, 1))) * 5 + (Val(Mid(str6Hifen2, 7, 1))) * 4 + (Val(Mid(str6Hifen2, 8, 1))) * 3 + (Val(Mid(str6Hifen2, 9, 1))) * 2) Mod 11
End If
End Function