Attribute VB_Name = "Mod_Valida_EAN13"
Option Compare Database
Function Valida_EAN13(Str_Numero)
Str_Par = 0
Str_ImPar = 0
Str_Numero = Format(Str_Numero, "000000000000")
Dim Str_Posicao2 As Double
Dim Str_Posicao4 As Double
Dim Str_Posicao6 As Double
Dim Str_Posicao8 As Double
Dim Str_Posicao10 As Double
Dim Str_Posicao12 As Double
'
Dim Str_Posicao1 As Double
Dim Str_Posicao3 As Double
Dim Str_Posicao5 As Double
Dim Str_Posicao7 As Double
Dim Str_Posicao9 As Double
Dim Str_Posicao11 As Double
Str_Posicao2 = Mid(Str_Numero, 2, 1)
Str_Posicao4 = Mid(Str_Numero, 4, 1)
Str_Posicao6 = Mid(Str_Numero, 6, 1)
Str_Posicao8 = Mid(Str_Numero, 8, 1)
Str_Posicao10 = Mid(Str_Numero, 10, 1)
Str_Posicao12 = Mid(Str_Numero, 12, 1)
'
Str_Posicao1 = Mid(Str_Numero, 1, 1)
Str_Posicao3 = Mid(Str_Numero, 3, 1)
Str_Posicao5 = Mid(Str_Numero, 5, 1)
Str_Posicao7 = Mid(Str_Numero, 7, 1)
Str_Posicao9 = Mid(Str_Numero, 9, 1)
Str_Posicao11 = Mid(Str_Numero, 11, 1)
Str_Soma_Pares = (Str_Posicao2 + Str_Posicao4 + Str_Posicao6 + Str_Posicao8 + Str_Posicao10 + Str_Posicao12) * 3
Str_Soma_ImPares = Str_Posicao1 + Str_Posicao3 + Str_Posicao5 + Str_Posicao7 + Str_Posicao9 + Str_Posicao11
Soma_Par_Impar = Str_Soma_Pares + Str_Soma_ImPares
If Soma_Par_Impar Mod 10 = 0 Then
Str_DV = 0
Else
For i = 0 To 9
Str_Verifica = Soma_Par_Impar + i
If Str_Verifica Mod 10 = 0 Then
Str_DV = i
GoTo finaliza:
End If
Next i
End If
finaliza:
Valida_EAN13 = Mid(Str_Numero, 1, 12) & Str_DV
End Function