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

Access Discussion :

Importation de fichiers JSON


Sujet :

Access

  1. #1
    Candidat au Club
    Importation de fichiers JSON
    Bonjour,

    je dois récupérer un certain nombre de tables et de données sous la forme de fichier JSON pour les intégrer dans une base ACCESS.
    Actuellement je suis obligé de passer par Excel et son outil "Power Query" puis de récupérer dans Access les données des feuilles Excel produites... C'est assez long et fastidieux mais je n'arrive pas à récupérer directement le JSON depuis Access.
    En cherchant dans les forums j'ai vu que certaines personnes passaient par VBA mais c'est au delà de mes compétences.
    Existe-t-il un outil permettant d'importer directement le JSON depuis Access comme cela est possible depuis Excel ?

    En vous remerciant par avance.
    Jean Baptiste

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    Il y a une bibliothèque VBA qui fait ça.

    https://github.com/VBA-tools/VBA-JSON/releases

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Expert confirmé
    Bonjour loufab et bienvenu Jean Baptiste ,

    VAB-JSON... Il permet surtout de convertir un JSON en une collection de dictionnaire ce qui permettent de manipuler le JSON comme une sorte de variable objet.
    Si c'est pour alimenter une table il faudra les instructions qui vont avec... si le VBA est au de là de tes compétences : c'est pas gagné.

    Puis ce que les données sont dans des feuilles Excel : pourquoi pas importer et lier la feuille à Access ?
    D'ailleurs de ce que j'ai vu de "Power Query" Access pourrait fournir tout autant le résultat => si au final cela fini dans Access tu devrais pouvoir te passer de "Power Query" ?

  4. #4
    Rédacteur/Modérateur

    Salut Vodiem,

    Visiblement Excel lui sert uniquement de passerelle depuis un autre source.

    sourceX Json ---> Excel ---> PQ ---> Access.

    C'est vrai que c'est lourdingue.

    Enfin si j'ai tout bien suivi.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Candidat au Club
    Bonjour à tous,

    Mille excuses pour ma réponse tardive mais la période est un peu compliquée pour moi.

    loufab : C'est tout à fait cela...
    Je produit du JSON que je récupère dans Excell puis que je récupère dans Access et que j'exploite ensuite dans Excell (avec PowerPivot) à nouveau... C'est assez lourdingue en effet mais pour le moment je n'ai pas trouvé le moyen de passer directement du JSON à Access.

    Je trouve étonnant qu'Access ne permette pas d'importer directement du JSON alors que Excell le fait... Mes compétences en VBA sont nuls donc je me demandais s'il n'existait pas un outil "tout fait" pour palier ce manque.
    vodiem : Comment utiliser PowerQuery avec Access ?
    En vous remerciant par avance,

    Jean Baptiste

  6. #6
    Expert confirmé
    Salut loufab, Jean Baptiste et à tous,

    - Access importe de table à table. A cause des imbrications possibles d'"objets" (table dans une table) avec le JSON cela demande une étape de conversion.
    C'est d'ailleurs ce que fait Power Query : Excel n'importe pas directement le JSON.

    - Power Query est un complément Excel. Il n'est pas possible de l'utiliser avec Access.

    - Quel est précisément ton process ?
    sourceX <fichier Json> ---> Excel+PQ <fichier xlsx> (...) Access <fichier accdb> (..?..) ---> Excel+PQ <fichier xlsx>

    - Si la finalité est de fournir un xlsx, le passage dans Access est-il vraiment obligatoire ?

    - Une fois le fichier xlsx alimenté par le JSON, Access peut très bien lier une table sur le fichier xlsx => pas besoin de fournir un json à Access.

    - la sourceX est en JSON : n'est-il pas possible d'avoir du XML, CSV... une connexion sur la source (une source supportée par Access) ?
    Pour traiter des données, avec Access il est possible de se passer de Excel+PQ et réciproquement (bien que chacun apporte des facilités dans leur domaine de prédilection)

  7. #7
    Candidat au Club
    Bonjour à tous,

    et merci du temps passé à me répondre.
    En fait le JSON permet de récupérer des données brutes et Access me permets de faire des requêtes précises (vues) des données sur lesquelles je veux travailler.
    Ensuite Power Pivot me permet de réaliser des tableaux croisés dynamiques et autres graphiques en exploitant le résultats des requêtes créées dans Access.

    Vodiem : "- Une fois le fichier xlsx alimenté par le JSON, Access peut très bien lier une table sur le fichier xlsx => pas besoin de fournir un json à Access." Je vais essayer d'explorer cette piste qui me permettrait de "simplifier" la procédure effectivement.

    Jean Baptiste

  8. #8
    Expert confirmé
    Cela ne te parlera pas Jean Baptiste mais pourrait intéresser d'autre...
    J'ai profité pour creuser par curiosité l'intégration de JSON dans Access via VBA.
    J'avais déjà utilisé la bibliothèque cité par loufab et j'avais écarté une autre solution pour des questions de dépendance.
    Mais il est intéressant de la connaitre :
    En rajoutant la référence "Microsoft Script Control 1.0" il suffit de charger le fichier JSON dans une variable, ensuite l'évaluer avec l'objet ScriptControl.
    On peut de là accéder à l'ensemble du contenu de cet objet. Il suffit alors de boucler dans la structure de l'objet et injecter les données avec une ligne sql dans une table.
    Assez trivial.

    @Jean Baptiste :
    Power Pivot me permet de réaliser des tableaux croisés dynamiques
    Tu sais qu'Access te fait aussi des tableaux croisés dynamiques ?
    Access est plus pertinent pour extraire des informations, il n'y a rien de mieux qu'une bonne requête pour cela. C'est simple et facilement maintenable mais si en contre partie cela complique l'obtention des données, il faudrait peut être revoir le concept. Surtout que côté représentation graphique...

    Je vais pas te dire qu'Excel est mieux mais on peut obtenir aussi des résultats sans passer par Access.
    PowerPivot, PowerQuery permettent de combler le manque de requête et encore... avec des formules adaptées je pense qu'on pourrait même s'en passer.
    Il faut reconnaitre qu'Excel est imbattable côté tableaux croisés dynamiques et graphiques.
    Passer par Access pour avoir uniquement une ou deux requêtes ne me parait pas justifié.
    Des fois un bon bricolage est plus efficace qu'une solution bien élaborée.
    Je ne vois pas de raison qui pourrait t'empêcher de te passer d'Access et de tout gérer dans Excel.