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