IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Access vba et json


Sujet :

VBA

  1. #1
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut Access vba et json
    Bonjour à tous,

    Pourriez vous m'aider

    J'ai vue qu'il y a http://www.ediy.co.nz/vbjson-json-pa...xidc55680.html.
    Que dois je installer et comment je peux récupérer ma data ? car je n'ai pas vraiment trouvé d'exemple. J'ai vue aussi qu'il y a plusieurs librairies?

    Merci de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Apparement c'est pour VB6 et non VBA.
    VB6 et VBA sont des langages "cousins" et même si leur syntaxe est assez semblable, ils sont suffisamment différents pour être incompatibles.
    Si tu as accès au code source, il est peut-être possible d'adapter le code à VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Merci pour la précision, du coup ,

    j'ai trouvé ça https://github.com/VBA-tools/VBA-JSON cela fonctionne. Par contre on peut parcourir le json, j'ai l'habitude de travailler avec du xml?

    Merci.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Les données lues sont stockées dans un objet de type Dictionary (Dim Parsed As Dictionary).

    Donc tu peux parcourir les éléments 1 par 1 en avant (et je pense dans l'ordre alphabétique des noms), ou alors allez chercher un élément par son "nom".

    Ici une explication de leurs usages.

    Using the Dictionary Class in VBA
    https://www.experts-exchange.com/art...ss-in-VBA.html

    L'exemple est pour Excel mais à part l'écriture des résultats dans des cellules (ce qui n'existe pas en Access) le code est assez semblable.

    Désolé je n'en ai pas trouvé pour Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Merci,

    Par exemple pour ci dessous si je fais json("test")(1)("attribut1") j'obtiens bien valeur1. Par contre pour de très gros json comment je fais pour récupérer les attributs
    dans un for each? je fais le for each sur la valeur test?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
        "test": [
            {
                "attribut1": "valeur1",
                "attribut2": "[{\"valeur\":2}]"
            },
            {
                "attribut1": "valeur1"
            }
    }

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En fait je n'en ai aucune idée.
    Cela dépend de comment les données sont stockées dans le dictionnaire.

    Ici un exemple de code qui t'affiche la clef et la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim d as dictionary
        'ici du code pour remplir le dictionnaire
     
        dim i as long
     
        For i = 0 To d.Count - 1
            Debug.Print d.items()(i), d.keys()(i)
        Next i

    Et un exemple avec un for each:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim K As Variant
     
    For Each K In d.Keys
        debug.print "Key: " & K , "Value: " & d.Item(K)
    Next
    Cela devrait te permettre de voir ce que contient ton dictionnaire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Merci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Set jsontest = JsonConverter.ParseJson(json)
     
     
        Dim i As Long
     
        For i = 1 To jsontest("test").Count
            Debug.Print jsontest("test")(i)("id")
        Next i
    Je vais utiliser que le for du coup.

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. [Vba] BDD : Excel + Access + Vba
    Par Emcy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2005, 10h23
  3. Mon appli Access/Vba: besoin de recul
    Par kilimanjaro dans le forum Access
    Réponses: 4
    Dernier message: 02/11/2005, 11h06
  4. Choisir Access + VBA ?
    Par Laurent de marseille dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/10/2003, 00h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo