Validare Cod Fiscal

Informatii despre cum se utilizeaza Microsoft Access 2007. Baze de date, Interogari, Formulare, Rapoarte, etc
cvmircea
Moderator
Moderator
Mesaje: 402
Membru din: Lun Aug 03, 2009 7:25 pm
Localitate: Alba Iulia
Contact:

Validare Cod Fiscal

Mesaj de cvmircea » Mie Noi 16, 2011 10:59 pm

Vreau ca intr-un formular pentru introducerea furnizorilor sa am un cod care sa verifice daca cif-ul introdus este corect.

Avatar utilizator
mesersmith
Mesaje: 2088
Membru din: Sâm Oct 23, 2010 6:44 am
Localitate: calarasi
Contact:

Re: Validare Cod Fiscal

Mesaj de mesersmith » Mie Noi 16, 2011 11:04 pm

Din cate stiu eu, site-urile care fac asta online, interogheaza un xml de pe site-ul anaf.
Am incercat sa gasesc aceste informatii pe site-ul lor si nu am gasit nimic.
Presupun ca te referi la verificarea cif-ului ca fiind real, nu corect ca forma, nu?

Avatar utilizator
mesersmith
Mesaje: 2088
Membru din: Sâm Oct 23, 2010 6:44 am
Localitate: calarasi
Contact:

Re: Validare Cod Fiscal

Mesaj de mesersmith » Mie Noi 16, 2011 11:16 pm

Acesta ar fi algoritmul.

Pas preliminar: Se testeaza daca codul respecta formatul unui cod CIF. Adica lungimea maxima sa fie de 10 cifre si sa contina doar caractere numerice.

Pas 1: Se foloseste cheia de testare "753217532". Se inverseaza ordinea cifrelor codului CIF precum si a cheii de testare.

Pas 2: Se ignora prima cifra din codul CIF inversat (aceasta este cifra de control) si se inmulteste fiecare cifra cu cifra corespunzatoare din cheia de testare inversata.

Pas 3: Se aduna toate produsele obtinute. Suma rezultata se inmulteste cu 10 si produsul este impartit la 11. Cifra obtinuta, in urma operatiei MODULO 11 reprezita cifra de verificare. Daca in urma impartirii s-a obtinut restul 10 atunci cifra de verificare va fi 0.

Pas 4: Pentru un CIF valid cifra de verificare va trebui sa corespunda cu cifra de control a codului CIF initial.

cvmircea
Moderator
Moderator
Mesaje: 402
Membru din: Lun Aug 03, 2009 7:25 pm
Localitate: Alba Iulia
Contact:

Re: Validare Cod Fiscal

Mesaj de cvmircea » Joi Noi 17, 2011 10:07 am

Sa se poata verifica daca este real ar fi ideal , dar stiu ca este mai dificil (am vazut pe un forum pentru fox pro o discutie si se pare ca au reusit cite ceva). Ar fi suficient si sa pot verifica daca este corect ca forma. Am vazut algoritmul de validare dar nu stiu sa il pun in vba, am vazut un post de al lui newbie cu un cod asemanator pentru Excel.

Avatar utilizator
mesersmith
Mesaje: 2088
Membru din: Sâm Oct 23, 2010 6:44 am
Localitate: calarasi
Contact:

Re: Validare Cod Fiscal

Mesaj de mesersmith » Joi Noi 17, 2011 10:59 am

Eu am gasit codul asta pe net, dar e pt visual basic.
Poate ti-l modifica cineva care stie vba.

Cod: Selectaţi tot

Public Function IsValidCIF(CiF As String) As Boolean

IsValidCIF = False
Dim i As Integer
On Error GoTo Eroare

 '****************************************
 'Pas preliminar: Se testeaza daca codul respecta formatul unui cod CIF.
 'Adica lungimea maxima sa fie de 10 cifre si sa contina doar caractere numerice.

 If IsNull(CiF) = True Or IsEmpty(CiF) Or CiF = "" Then
 IsValidCIF = False
 Exit Function
 End If

 CiF = Replace(CiF, " ", "")

 '****************************************
 If Len(CiF) < 2 Then
 IsValidCIF = False
 Exit Function
 End If

 '****************************************
 '- elimin caracterele de inceput RO sau altceva

 For i = 0 To Len(CiF) - 1
 If IsNumeric(Mid(CiF, i + 1, 1)) Then
 CiF = Mid(CiF, i + 1)
 GoTo sari
 End If
 Next i
sari:
 '****************************************
 '- verific fie maxim 10 caractere
 If Len(CiF) > 10 Then
 IsValidCIF = False
 Exit Function
 End If

 '****************************************
 'Pas 1: Se foloseste cheia de testare "753217532". Se inverseaza ordinea cifrelor codului
 'CIF precum si a cheii de testare.
 ' Array gata inversat

 Dim CheieTestare(8) As Integer

 CheieTestare(0) = 2
 CheieTestare(1) = 3
 CheieTestare(2) = 5
 CheieTestare(3) = 7
 CheieTestare(4) = 1
 CheieTestare(5) = 2
 CheieTestare(6) = 3
 CheieTestare(7) = 5
 CheieTestare(8) = 7


 '****************************************
 ' Array pentru CIF
 ' tot inversate

 Dim CIFArray(10)

 For i = 0 To Len(CiF) - 1
 CIFArray(i) = Mid(CiF, Len(CiF) - (i), 1)
 'MsgBox i & " -" & CIFArray(i)
 Next i



 'Pas 2: Se ignora prima cifra din codul CIF inversat (aceasta este cifra de control)
 'si se inmulteste fiecare cifra cu cifra corespunzatoare din cheia de testare inversata.

 Dim Total As Integer
 Total = 0

 For i = 1 To Len(CiF) - 1
 Total = Total + (CIFArray(i) * CheieTestare(i - 1))
 'MsgBox CIFArray(i) & " * " & CheieTestare(i - 1)
 Next i



 'Pas 3: Se aduna toate produsele obtinute. Suma rezultata se inmulteste cu 10 si
 'produsul este impartit la 11. Cifra obtinuta, in urma operatiei MODULO 11 reprezita
 'cifra de verificare. Daca in urma impartirii s-a obtinut restul 10 atunci
 'cifra de verificare va fi 0.



 Total = (Total * 10)

 Dim Rezultat As Integer
 Rezultat = Total Mod 11

 If Rezultat = 10 Then
 Rezultat = 0
 End If

 If Rezultat = CIFArray(0) Then
 IsValidCIF = True
 Else
 IsValidCIF = False
 End If



 Erase CIFArray
 Erase CheieTestare
 Exit Function
Eroare:
 IsValidCIF = False
 End Function


chemi functia cu:
ValCiF = IsValidCIF(Worksheets(codul CIF)

returneaza true sau false

biancaioana
Mesaje: 153
Membru din: Dum Mai 29, 2011 10:25 am

Re: Validare Cod Fiscal

Mesaj de biancaioana » Vin Noi 18, 2011 6:55 pm

Incercati modelul atasat.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

cvmircea
Moderator
Moderator
Mesaje: 402
Membru din: Lun Aug 03, 2009 7:25 pm
Localitate: Alba Iulia
Contact:

Re: Validare Cod Fiscal

Mesaj de cvmircea » Vin Noi 18, 2011 8:27 pm

Mersi biancaioana, este exact ce imi trebuie. Eu vreau sa il folosesc intr-un formular pentru a mai scadea numarul greselilor asa ca am modificat putin exemplul tau .Poate o sa gasim o solutie sa verificam daca este un cif real online pe site-ul ministerului de finante : http://voes.mfinante.ro/codfiscal/pjuridice.html pentru ca am vazut pe un forum pt foxpro ca se poate.
Deocamdata este suficient exemplul tau, multumesc inca o data.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: Validare Cod Fiscal

Mesaj de smcsa » Vin Noi 18, 2011 9:09 pm


csuciava
Mesaje: 25
Membru din: Joi Sep 22, 2011 10:09 pm

Re: Validare Cod Fiscal

Mesaj de csuciava » Vin Noi 18, 2011 9:34 pm

uau!
şi se poate folosi o interograre dinasta în Access??

smcsa
Mesaje: 2805
Membru din: Mar Sep 29, 2009 7:29 pm
Localitate: Timisoara

Re: Validare Cod Fiscal

Mesaj de smcsa » Sâm Noi 19, 2011 11:05 am

Ei, na. Exact ca acolo e pentru Linux ;) Alea sunt de fapt pentru cei care fac site-uri sau aplicatii web. Dar nu vad care ar fi problema sa:
1. Incerci sa adaptezi la VBA
2. Sa-i "suni" si sa-i intrebi de sanatate :)

Închis

Înapoi la “Intrebari despre Access 2007”