Preluare date firme de pe net

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

Re: Preluare date firme de pe net

Mesaj de cvmircea » Joi Feb 13, 2014 11:44 pm

Da am reusit si se misca mai repede.Mai trebuie sa rezov chestia cu diacriticile, ma gindeam sa vad cu ce caractere sunt inlocuite si sa incerc sa fac un "replace" dar nu ma pricep la VBA. Pentru a pune datele in textbox-uri:

Cod: Selectaţi tot

Public Sub Test()
    Dim df As DateFirma
    cif = Me.cif.Value
    df = DateANAF(cif)
    Me.nume = df.Denumire
    Me.adresa = df.adresa
    Me.localitate = df.localitate
    Me.j = df.NrInreg
    Me.judet = df.Judetul
End Sub

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

Re: Preluare date firme de pe net

Mesaj de cvmircea » Vin Feb 14, 2014 10:30 pm

Am reusit sa inlocuiesc diacriticile dar nu cred ca este abordarea corecta pentru ca acum apar probleme daca este scris cu majuscule. Acum am observat ca pe site fisierul xml este cu diacritice iar fisierul .txt de pe calculator nu mai este cu diacritice. Diacriticile le-am inlocuit :

Cod: Selectaţi tot

ContinutANAF = Replace(Mid(strXML, pStart, pStop - pStart), StrStart, "")
    ContinutANAF = Replace(ContinutANAF, "Ţ", "t")
    ContinutANAF = Replace(ContinutANAF, "Â", "a")
    ContinutANAF = Replace(ContinutANAF, "Ş", "s")

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

Re: Preluare date firme de pe net

Mesaj de cvmircea » Mar Feb 18, 2014 12:30 am

Pina la urma tot la varianta cu replace am ramas:

Cod: Selectaţi tot

ContinutANAF = Replace(Mid(strXML, pStart, pStop - pStart), StrStart, "")
    ContinutANAF = Replace(ContinutANAF, "Ă", "A")
    ContinutANAF = Replace(ContinutANAF, "ă", "a")
    ContinutANAF = Replace(ContinutANAF, "Â", "A")
    ContinutANAF = Replace(ContinutANAF, "â", "a")
    ContinutANAF = Replace(ContinutANAF, "Î", "I")
    ContinutANAF = Replace(ContinutANAF, "î", "i")
    ContinutANAF = Replace(ContinutANAF, "Ș", "S")
    ContinutANAF = Replace(ContinutANAF, "ș", "s")
    ContinutANAF = Replace(ContinutANAF, "Ş", "S")
    ContinutANAF = Replace(ContinutANAF, "ş", "s")
    ContinutANAF = Replace(ContinutANAF, "Ţ", "T")

alexxa1318
Mesaje: 25
Membru din: Lun Oct 03, 2011 12:47 pm

Re: Preluare date firme de pe net

Mesaj de alexxa1318 » Mar Feb 18, 2014 2:04 pm

Ca o completare, un macro care ar scoate toate tipurile de diacritice (nu numai cele romanesti) ar fi urmatorul:

Cod: Selectaţi tot

Function ScoateDiacritice(thestring As String)
Dim A As String * 1
Dim B As String * 1
Dim i As Integer
Const AccChars= "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars= "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
For i = 1 To Len(AccChars)
A = Mid(AccChars, i, 1)
B = Mid(RegChars, i, 1)
thestring = Replace(thestring, A, B)
Next
StripAccent = thestring
End Function
este posibi sa fi scapat cateva tipuri de litere :(

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

Re: Preluare date firme de pe net

Mesaj de mesersmith » Mar Feb 18, 2014 5:11 pm

Mircea, ce sa vezi? Azi am mai incercat inca o data aplicatia aia pe care o foloseam noi, codul ei de fapt si vad ca merge.
Sa fi schimbat aia de pe site-ul ala ceva in codul xml?
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

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

Re: Preluare date firme de pe net

Mesaj de cvmircea » Dum Noi 27, 2016 2:17 am

Pana acum am folosit openapi.ro pentru preluarea datelor despre firme dar de curand au renuntat la formatul .XML si mai au doar varianta cu json. Stiti cumva daca se pot prelua date din format json ? Sau stiti un alt site de pe care se pot prelua date despre firme in format xml ?

Catalin B.
Moderator
Moderator
Mesaje: 813
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: Preluare date firme de pe net

Mesaj de Catalin B. » Dum Noi 27, 2016 7:43 am

Intr-adevar, din ce in ce mai multi operatori de date renunta la formatul xml in favoarea JSON.
Deocamdata, singura biblioteca de prelucrare JSON este in Power Query (Excel), anexez un exemplu de procesare JSON in excel.
Pentru Access, s-ar putea utiliza o functie UDF:

Cod: Selectaţi tot

Function FindPattern(ByVal Text As String, ByVal StrPattern As String) As String
Dim Result As String, i As Integer
Dim allMatches As Object
Dim re As Object
Set re = CreateObject("vbscript.regexp")

If InStr("radiata", StrPattern) > 0 Then
    StrPattern = StrPattern & Chr(34) & ": " & "?.*?,"
Else
    StrPattern = StrPattern & Chr(34) & ": " & Chr(34) & "?.*?" & Chr(34)
End If

re.Pattern = StrPattern
re.Global = True
re.IgnoreCase = False
re.MultiLine = False
Set allMatches = re.Execute(Text)

If allMatches.Count <> 0 Then
   Result = allMatches.Item(0)  '.FirstIndex
Else
   Result = ""
End If

If InStr(Result, ":") > 0 Then Result = Trim(Replace(Split(Result, ":")(1), Chr(34), ""))

FindPattern = Result

End Function
Un element din text se poate extrage dupa eticheta campului respectiv: FindPattern(JSONText, "numar_reg_com") sau FindPattern(JSONText, "cif")
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Probleme să fie, că soluţii se găsesc...

Închis

Înapoi la “Intrebari despre Access 2007”