Ciao a tutti, se può essere utile vi posto il codice che uso per controllare se data una partita iva è corretta oppure no. Ciao a tutti.
Public Sub IsPartitaIva(PartitaIva As String) As Boolean
Dim SplitPartIva As New String[]
Dim Elemento As String
Dim i, x As Integer
Dim Controllo1, Controllo2, Controllo3 As Integer
x = 1
Controllo1 = 0
Controllo2 = 0
Controllo3 = 0
For i = 0 To Len(PartitaIva) - 1
SplitPartIva.Add(Mid$(PartitaIva, x, 1))
If (x Mod 2) = 1 Then
Controllo1 += Mid$(PartitaIva, x, 1)
Else
Controllo2 += Mid$(PartitaIva, x, 1)
If CInt(Mid$(PartitaIva, x, 1)) >= 5 Then
Inc Controllo3
Endif
Endif
Inc x
Next
If (Controllo1 + (Controllo2 * 2) + Controllo3) Mod 10 = 0 Then
Return True
Else
Return False
Endif
End
Ciao, non è propriamente un database ma un file csv, aggiornato al 30-12-2011, facilmente importabile.
Inoltre volevo proporti una differente versione dell'algoritmo per la verifica della P.Iva:
funziona per ora solo con i codici italiani, il parametro country verrà utilizzato se e quando avrò tempo di analizzare le P.Iva estere
Static Public Function CheckPiva(sPiva As String, Optional sCountry As String = "IT") As Boolean
Dim iEven, iOdd, iBig, iCtrl, iStep As Integer
If (Upper$(sCountry) <> "IT") Then Return True
If (Len(sPiva) <> 11) Then Return False
For iStep = 1 To 9 Step 2
iEven = CInteger(Mid$(sPiva, iStep, 1))
iOdd = CInteger(Mid$(sPiva, iStep + 1, 1))
If (iOdd > 4) Then iBig += 1
iCtrl += 2 * iOdd + iEven
Next
iCtrl += iBig + CInteger(Right$(sPiva, 1))
Return (iCtrl Mod 10 = 0)
End