Tri avec plusieurs tables

Résolu
Berorn Messages postés 31 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai réalisé une application grâce à Excel avec des macros mais celle-ci devient limité au vue des données injectées. Je souhaite donc passé à Access mais je l'ai jamais utilisé ( c'est pour cela que j'ai fait du Vb avec excel la première fois ).
Je découvre donc access au fur et à mesure et me voici déjà bloqué...
J'ai deux tables :
la première : Table Clipper

La seconde : Table ARM


Je souhaite faire un affichage de ce type de colonnes :
Pièce / N°phase / Désignation Phase / nb heure / nb pièces finies / nb de pièces prélevées / Valeurs

Nb de pièces prélevées et valeurs proviennent de la table ARM et le reste de l'autre table.

Mon lien entre les deux tables :
Date prod = Date prélèvement
Employé = initiale
Centre frais = Centre frais

Pour résumer, Lorsque j'ai la même date, le même centre frais, le même employé, ça me trouve la pièce, le n° de phase et sa désignation et fais la somme du nb heure, du nb de pièce finies, du nombre de pièces prélevées, et des valeurs associées.

J'ai fais des essais de requêtes, mais je n'ai pas obtenu satisfaction. Je souhaite savoir quelle procédure suivre.
Je remercie par avance

Configuration: Windows / Chrome 86.0.4240.183

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    ce serait plus simple pour nous si tu donnais la liste des champs par table, en texte, pas en image.
    et plus simple pour toi sans caractères spéciaux dans les noms de champs
    peut-être ainsi:
    SELECT Pièce , N°phase , DésignationPhase, 
           sum(nbheure),  sum(nbpiècesfinies), sum(nbdepiècesprélevées), 
           sum(Valeurs)
    FROM Clipper, ARM
    WHERE 
    Dateprod = Dateprélèvement  and Employé = initiale 
                  and Clipper.Centrefrais = ARM.Centrefrais
    GROUP BY Pièce , N°phase , DésignationPhase
    0
  2. Berorn Messages postés 31 Statut Membre
     
    Merci pour ta réponse. Je prends note pour tes conseils.
    Je vais essayer, faut-il que je crée des liaisons entre les tables ? Je reviens vers toi ensuite.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      si tu utilises la requête suggérée, il n'est pas nécessaire de créer des relations.
      0
  3. Castours
     
    bonjour
    oui il faut créer de une relation entre tables
    0
  4. Berorn Messages postés 31 Statut Membre
     
    Bonjour,
    Je reviens sur le sujet après de nombreux essais mais en vain.
    Par rapport à la solution ci dessus, le résultat n'est pas les sommes ne sont pas les bonnes comme-ci elles étaient multiplié par le nombre de prélèvement....

    Je décide donc de suivre les conseils de yg_be est de vous ré-expliquer mon problème.
    J'ai actuellement un logiciel de GPAO qui me crée une liste de production, voici la table que j'injecte dans access : T_Clipper
    Ces champs : N°Pointage(Clef primaire), DateProd, RefEmploye, IdMachine,Piece,N°Phase,DesignationPhase,Nbheure,NbPieceBonne

    Explication : Tel jour, on produit une pièce sur une machine, par tel employe on fait tant de pièce en tant de temps. Une pièce peut avoir plusieurs phases (ex : 10,20,....)

    Ensuite un logiciel de gestion de consommables me donne les consommables prélevés par Machine c'est ma table : T_Arm
    Ces champs : N°Prelevement(Clef primaire),DatePrelevement,RefEmploye,IdComposant,QtPrelevee,Valeur,IdMachine

    Explication : Tel jour, sur telle machine, l'employé X a prelevé 1 ou plusieurs composants, cela coût tant

    Le but final est d'obtenir un état avec une liste avec les champs suivant :
    Piece,SommeNbPieceBonnePhaseMax,SommeValeur
    ces champ correspondent :
    Piece = Toutes les pièces qui apparaissent dans la T_Clipper
    SommeNbPieceBonnePhaseMax = après avoir identifié le N°phase maximum par piece (ex : Pour la PC1, la dernière phase (le n°phase maxi) est 20), nous faisons la somme de toutes les pièces bonnes de cette phase.
    SommeValeur = La totalité des valeurs prélevées pour cette pièce peu importe les phases.

    Premier problème c'est que ma table T_Arm me dit pas que tel prélèvement est réalisé pour tel pièce, tel phase. Le seul lien est : Si DateProd dans T_Clipper = DatePrelevement dans T_Arm et RefEmploye dans T_Clipper = RefEmploye dans T_Arm et IdMachine dans T_Clipper = IdMachine dans T_Arm, ces conditions nous permet donc de lier un prélèvement à une pièce et une phase.

    Une fois que j'arrive à faire ce lien, je pense réussir à faire les sommes que je veux pour faire mon état. j'espère avoir été plus clair. Je suis à votre écoute pour toutes remarques si je n'ai pas utilisé la bonne méthodologie.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      si j'ai compris ce que tu veux obtenir, je suggère de faire deux requêtes, une qui retourne
      Piece,SommeValeur
      et une autre qui retourne
      Piece,SommeNbPieceBonnePhaseMax
      .
      et ensuite, faire une troisième requête à partir des deux premières (sans calculer de sommes).
      0
    2. Berorn Messages postés 31 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      J'ai mis ma base dans un commentaire ci-dessous, voilà ce que je veux obtenir :
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Berorn Messages postés 31 Statut Membre
       
      as-tu essayé ma suggestion de faire deux requêtes?
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Berorn Messages postés 31 Statut Membre
       
      j'ai suivi ma suggestion, et j'arrive au résultat, sauf que j'ai 95€ pour PC2.
      0
    5. Berorn Messages postés 31 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Non car dans la première requête que tu me propose je ne vois pas comment faire le lien entre piece et somme valeur....
      Désolé je crois que je n'ai pas choisi le sujet le plus facile pour me mettre à Access....
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Castours
     
    bonjour
    pour mieux etudier ton probleme, peux tu mettre ta base compressé en zip dans un lien avec c joint com sur comment ca marche
    0
    1. Berorn Messages postés 31 Statut Membre
       
      https://www.cjoint.com/c/JKopONs4t6s
      Voici ma base compressée, si ça marche
      Vous verrez il y a des tables en plus mais c'était pour des essais, elles ne sont peut être pas utiles. Attention des relations existent...
      0