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

Access Discussion :

Valeurs des champs dans une liste


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Valeurs des champs dans une liste
    Bonjour,

    j'ai une table ListePackage dans laquelle les différents champs correspondent aux produits contenues dans ce pack. J'aimerai, dans un formulaire, faire apparaitre l'ensemble de ces produits sous forme d'une liste. Les champs des produits se nomment idprod1, idprod2, etc...
    L'idéal serai que la liste contienne les noms des produits ,contenus dans ma table listeProduit, correspondant aux idprods présents dans la table listePackage.

    je vous remercie d'avance de votre aide.

  2. #2
    Membre du Club Avatar de tiotel
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 75
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Esaye de crerr un zone de liste deroulante et dans la source de donner, fais ta requete qui correspond a tes besoins, normalement cela devra fontionner

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Salut,

    Donc si je comprends bien dans ta table package tu as autant de champ Iprodxx que de produit pour 1 package.

    Si tel est le cas ta structure de table n'est pas bonne. Car si tu crée 3 champs produits et qu'un jour tu dois rajouter un nouveau produit dans un package tu seras obligé te créer un nouveau champ.

    Donc Une table Produit, Package et une table association Produit / package.

    Et après avec l'assistant access, ce sera une partie de rigolade de créer le formulaire que tu veux à savoir liste des produits pour 1 package

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Le problème c'est que je ne veux pas une liste d'enregistrements mais une liste des valeurs des champs d'un même enregistrement.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Et comment fait on une table association je ne connais pas

  6. #6
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    pour la table association c'est une table comme les autre avec:


    NumProduits
    NumPackage

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    le seul hic c'est que tu n'as fait que changer id par num mais je ne vois toujours pas là où tu veux en venir. En plus, le nombre de produits dans un package est défini et ne changera pas.

  8. #8
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    bien laisse tomber pour la structure de la base notamment si tu es sur que le nombre de produit ne changera pas.

  9. #9
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    il faudra faire une requête avant le form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT package.IdPackage, package.nomPackage, 
    Produits.DesignProduit, 
    Produits_1.DesignProduit, 
    Produits_2.DesignProduit
    FROM Produits AS Produits_2 INNER JOIN 
    (Produits AS Produits_1 INNER JOIN 
    (Produits INNER JOIN package ON Produits.IdProduit = package.IdProd1) 
    ON Produits_1.IdProduit = package.IdProd2) 
    ON Produits_2.IdProduit = package.IdProd3;
    En fait dans ta requête tu vas utiliser plusieurs fois la table produit pour la lier à chacun des champs IdProdxx de ta table package

    C'est une solution.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Helas je ne comprend pas comment fonctionne le design. Tu pourrais m'expliquer un petit peu stp, ce serai bien urbain de ta part.
    Mais vu la gueule de la requête je ne crois pas que ça corresponde à ce que je recherche. Pour faire simple je veux afficher,sous forme de liste, toutes les valeurs des champs d'un enregistrement (package) que j'identifie grâce à son id.

  11. #11
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Dans Requête tu choisir Nouveau - Mode Création

    Il te demande les tables à choisir:
    Package
    et produit autant de fois que tu as de IDpRod dans package

    Puis fermer.
    La liste des tables apparait dans ta grille.
    Tu supprimes les liaisons crées si il y en a. (truc noir qui vont d'une table à une autre)
    Puis tu prend IdProd de la première table Produits tu clic et tu glisses sur IdProd1 de package.
    Puis tu prend IdProd de la deuxième table Produits (probablement PRODUITS_1) tu clic et tu glisses sur IdProd2 de package.
    etc

    En suite tu double clic sur le nom des champs que tu veux en sortie
    NomPackage
    Dans la table Produits tu prends désignation
    Dans la table Produits_1 tu prends désignation
    etc

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Apparemment j'ai du mal à exprimer ce que je désire. Cette requête fait bien apparaître toutes les infos que je veux sauf qu'elles sont toutes sur la même ligne. Or je veux que chaque champ (donc chaque produit contenu dans le package selectionné par son id) représente une ligne de ma liste.

    Je ne sais pas si c'est clair mais je ne vois pas comment le dire autrement.

  13. #13
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    c'est un problème que tu n'aurais pas en créeant une nouvelle table Produit/Package contenant les IdProd et IdPackage...

  14. #14
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Une autre solution consiste à faire Un requête pour les produits se trouvant dans IdProd1
    une deuxième dans IdProd2
    etc

    Puis faire une requête Union sur les requêtes précédentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * FROM REQPROD1
    UNION ALL
    SELECT * FROM REQPROD2
    UNION ALL 
    SELECT * FROM REQPROD3

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Dans ce cas comment je pourrais signaler que tel package contient tels produits. En sachant qu'un produit appartient à plusieurs packages.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Est-ce que je ne pourrai pas reprendre les valeurs de chaque champ dans des "strings" puis prendre la liste comme une liste de valeurs et plus comme une requête???

  17. #17
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Requête 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT package.IdPackage, package.nomPackage, Produits.DesignProduit
    FROM package INNER JOIN Produits ON package.IdProd1 = Produits.IdProduit;
    Requête 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT package.IdPackage, package.nomPackage, Produits.DesignProduit
    FROM package INNER JOIN Produits ON package.IdProd2 = Produits.IdProduit;
    Requête 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT package.IdPackage, package.nomPackage, Produits.DesignProduit
    FROM package INNER JOIN Produits ON package.IdProd3 = Produits.IdProduit;
    Requête 4 :
    La requête ci-dessus

  18. #18
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    le plus simple à mon avis est de passer par des requetes. et tu pourras toujours retrouver le package par rapport au produit puisque sur chaque ligne tu as le produit ET le package

  19. #19
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Le dernier point est que chaque requête ainsi trouver représente une ligne de ma liste et on en revient au même point, non?

  20. #20
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Dois-je en conclure que mon cas est desespéré????

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2014, 13h57
  2. [MySQL] nom des champs dans une liste dynamique
    Par jeinny dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/05/2009, 11h06
  3. Réponses: 7
    Dernier message: 25/01/2009, 22h50
  4. recuperer la valeur du champ dans une liste déroulante
    Par zambudio dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/11/2008, 20h26
  5. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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