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 Access Discussion :

VBA Tableau : Recuperer les données [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut VBA Tableau : Recuperer les données
    Bonjour tous le monde :-)

    Je fais actuellement un projet en Access 2010 et je tente de récupérer les données d'une table via le VBA.

    Tout d'abord, je récupère les données d'un fichier Excel que je copie dans une table -> Ok ca marche :-)

    Par la suite, j'ai deux tables.

    Premiere table: elle contient des codes natures uniques, ainsi qu'un libellé et un code qui peut être un doublon

    Code Nature Libellé Code ID
    581.23 Banane 1
    581.24 Poire 1
    581.25 Salade 2
    581.26 Fraise 1
    581.27 rumsteak 3
    581.28 truite 4
    581.29 Beefsteak 3
    581.30 Poulet 5

    L'iD va me dire si c'est un fruit,un légume, un poisson, du porc ou encore de la volaille !

    Ma deuxième table, elle va reprendre Tous les codes natures mais en plus les détails de ces codes :

    Code Nature Libellé général quantité Prix
    581.23 Fruit 18 15
    581.24 Poire 7 11
    581.25 Legumes 3 11.50
    581.25 Legumes 10 90


    Qu'est que je dois faire ?

    Eh bien, je dois creer des requetes dynamiques qui lient les deux tables via le code nature

    Ce qui devient :
    Libellé Libellé général quantité Prix

    On peut se rendre compte que le code nature est retiré -> ca va me permettre de regrouper les codes natures grâce au code ID

    Il faut savoir que les deux tableaux peuvent augmenter leur taille et que les codes natures peuvent aussi augmenter.

    De fait, des requetes dites statiques ne peuvent pas fonctionner.

    En effet, si a chaque fois, je rajoute un code nature dans la table 1 et qu'il n'existe pas encore la requête, ca va être chaud.

    Du coup, j'ai pensé faire cela en vba mais comment ?

    Je sais que je dois faire un openrecordset sur ma premiere table avec un select distinct afin d'eviter les doublons et une boucle mais ensuite, je fais comment mais requetes dynamiques ? :-s

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Il n'y a pas de requête statique dans le sens où tu l'entends.

    Une requête enregistrée ou non affiche toujours les résultats en fonction des tables au moment où tu l'éxécutes. Donc si tu écris aujourd'hui une requête qui utilise en jointure ta table des catégories, tu vas avoir toutes les catégories présentes. Et demain, sans rien changer à ta requête, si tu as ajouté une catégorie, tu auras une catégorie de plus.

    Note que quand tu crées ta jointure tu as plusieurs types de jointure, je t'invite à les essayer et voir ce qui se passe.

    J'espère avoir répondu à ta question.

    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
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    misterlagaffe,

    L'utilisation d'une requête doit te permettre d'afficher dynamiquement l'ensemble de tes données (René te l'a précisé dans sa réponse) peu importe l'évolution du contenu de tes tables (ton choix s’opérera simplement sur les jointures).

    Pour cette remarque :

    En effet, si a chaque fois, je rajoute un code nature dans la table 1 et qu'il n'existe pas encore la requête, ca va être chaud.
    Il existe différents types de jointures (inner join, join, left join et right join) permettant d'afficher l'ensemble des informations dans les deux tables, dans la table source ou héritée (donc pas de risques...). Cela dit, un contrôle de non correspondance avec injection automatique est à envisager... (c'est individuel et n'engage que moi).

    JimBoLion

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut
    Bon voila, j'ai réussi à faire ce que je voulais :-)

    En vba, je me connecte à une table Noname.

    En fonction du nombre d'enregistrements de la table Noname, cela me cree X Requêtes qui se remplissent du contenu que j'ai paramétré :-)

    Le contenu contient au moins une donnée égale à une donnée de la table Noname.

    Donc si ma table Noname contient

    1. Pomme
    2. Banane
    3. Salade
    4. Tomate
    5. Boeuf


    Et que mon autre table contient

    1. vert, ville, Fruit, 3
    2. Rouge, Campagne, légume, 4
    etc.

    J'aurais des requetes avec les noms :

    RQ_salade

    les données de la salade

    RQ_tomate

    les données de la tomate.

    Tout cela en VBA :-)

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Pouquoi ne pas faire une seule requête et filtrer sur le produit ?

    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.

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

Discussions similaires

  1. [MySQL] recuperer les données d'un tableau
    Par claude77 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/02/2014, 14h00
  2. [MySQL] recupere les données d'un tableau de selection
    Par kitcarson23 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/12/2010, 11h31
  3. Réponses: 3
    Dernier message: 12/11/2009, 14h26
  4. Mysql LongBlob: recuperer les données
    Par froz dans le forum SGBD
    Réponses: 1
    Dernier message: 24/08/2005, 14h41
  5. Réponses: 13
    Dernier message: 14/10/2003, 14h31

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