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

Requêtes et SQL. Discussion :

Requête "incrémentielle" avec conditions [AC-365]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Requête "incrémentielle" avec conditions
    Bonjour à tous

    D'avance pardon pour mes éventuelles erreurs ou imprécisions, je suis débutant sur Access et ce n'est pas du tout mon cœur de métier.

    Mon besoin: alimenter un planning de livraisons de lots produits.

    Mon problème: j'ai 3 tables "Lots", "Organisation" et "Étapes" qui me permettent de définir la date de début de fabrication d'un lot puis d'en calculer les dates de chaque étape de fabrication en fonction de l'organisation de production choisie. C'est dans la table "Lots" que je définie la catégorie du lot à produire. Le numéro de lot est ensuite codé ainsi : AAX000 où AA est l'année de fabrication, X la catégorie du lot (E,F ou G) et 000 un numéro incrémentiel.

    En parallèle j'ai une table "Expéditions" avec simplement les dates de livraisons souhaitées par mon client ainsi que la catégorie de produit qu'il souhaite.

    Comment construire une requête pour qu'en face de chaque date de livraison puisse être choisi par Access le numéro de lot remplissant les conditions?
    Tous mes essais me mènent à des doublons, ne sachant pas comment faire pour qu'un lot déjà planifié en expédition ne soit plus éligible aux prochaines expéditions.

    Merci de vos avis et conseils

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Peut être qu'avec des captures cela sera plus clair que mon explication textuelle. Voici ma requête:
    Nom : 2020-03-10 15_29_27-Access - Test _ Base de données- C__Users_dumonta_Desktop_Test.accdb (format.png
Affichages : 332
Taille : 47,6 Ko

    et le résultat obtenu:
    Nom : 2020-03-10 15_28_51-Access - Test _ Base de données- C__Users_dumonta_Desktop_Test.accdb (format.png
Affichages : 324
Taille : 46,9 Ko

    Les données affichées sont correctes et respectent les conditions appliquées. Ma difficulté est de n'avoir que des valeurs uniques dans le champ "N° de lot". En effet, un même lot ne peut pas être expédié plusieurs fois...

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    A tester: faire des relations entre les tables de cette façon:
    Nom : Expéditions.png
Affichages : 300
Taille : 43,2 Ko
    regarder le résultat sans aucune condition,
    ensuite ajouter les conditions utiles.

    Cordialement.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci d'avoir pris de votre temps pour m'aider.
    J'ai testé votre proposition. Le point positif est qu'elle simplifie ma base en supprimant une table!
    Malheureusement le résultat de ma requête reste identique à précédemment:
    Nom : Planning expédition.png
Affichages : 308
Taille : 52,7 Ko

    Voici le résultat que j’attends de ma requête, mais je n'arrive pas à trouver la façon d'obtenir ceci
    Nom : Sans titre.png
Affichages : 327
Taille : 556,5 Ko

    La logique est simple, j'ai réussi à formuler les conditions à remplir pour chaque lot. Là où je bloque c'est de pouvoir formuler ma requête pour qu'elle n'associe qu'une seule fois un n° de lot à une date de livraison. Pour résumer, qu'une fois un n° de lot attribué à une date (ex:20F001 livré le 30/04/20) celui ci ne soit plus "éligible" à la livraison. Ainsi pour la prochaine livraison prévue, c'est le lot suivant (20F002 en l’occurrence) qui sera sélectionné

    Avez vous des solutions techniques ou des approches à me conseiller svp?

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Difficile de vous répondre sans avoir le fichier sous la main. Vous pourriez déposer sur le site un extrait de celle-ci, sans données confidentielles. Vous devez sans doute faire une requête regroupement avec une clause "premier" sur le champ N°lot.

    Cordialement.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    J'ai tenté une requête regroupement sans grand succès... en pj ma base sans données confidentielles avec des données "fictives"

    Merci de votre aide
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 652
    Points : 14 631
    Points
    14 631
    Par défaut
    bonsoir,
    personnellement, je pense qu'il manque la date d'expédition dans la table des lots, ce qui aurait facilité la jointure entre Lots et Expéditions
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Pour autant que j'aie bien compris le problème, une solution possible ... à vérifier!

    Part du principe qu'un lot n'est utilisé que 1 fois mais qu'une expédition est alimentée de tous lots jusqu'à ce que la date du lot dépasse la date d'expédition. 3 requêtes successives qFini >> qFiniOk >> qExp.

    Note: "conforme" non utilisé.

    Bonne continuation.
    Fichiers attachés Fichiers attachés

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci pour cette nouvelle approche!! La solution se rapproche mais n'est toujours pas parfaite. En effet la requête 'qExp' me renvoie 10 lignes alors que je n'ai que 6 lignes d'expédition de renseignées dans la table 'Expéditions'.
    Pour simplifier nos discussions, voici une simulation du résultat attendu. C'est une table créée manuellement juste pour visualiser ce que j'exprime peut être mal.
    Nom : Résultat attendu.png
Affichages : 277
Taille : 17,9 Ko

    On voit les 6 lignes qui correspondent aux 6 livraisons attendues par mon client. On voit que les 'code projet expédition' (besoin définis par mon client) correspondent aux 'code projet lot' (lots fabriqués que j'ai en stock). Le code projet est traduit par une lettre dans le n° de lot: F50078 = 20EXXX, F50092 = 20FXXX et D00104=20GXXX.
    Enfin on voit que pour un même code projet, les numéro de lot sont choisis chronologiquement.

    Si je prend l'exemple des besoins de mon client sur le projet F50092, je visualise que j'ai deux expéditions de ce produit à réaliser: la première le 30/04/20 et la seconde le 19/05/20. Je vais logiquement choisir le lot 20F001 pour la 1ère livraison et le 20F002 pour la 2nde. Les n° de lot étant incrémentiels, je comprend que le lot 20F001 a été fabriqué avant le lot 20F002, il sera donc le premier à être livré pour respecter la règle du FIFO.

    Je vais continuer à travailler sur votre approche de requêtes en cascade, j'ai le sentiment que j'arriverai peut être à mes fins avec ce nouvel angle de réflexion.

    En vous remerciant encore pour votre aide

  10. #10
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Effectivement. Il faut passer par une forme de numérotation des expéditions au même client pour relier expéditions et lots. Une façon de faire en attaché ... qui ne fonctionne plus si l'on ne suit pas strictement la règle de codification (par exemple en ajoutant _1kg en fin de code).

    Bonne continuation.
    Fichiers attachés Fichiers attachés

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci infiniment pour votre aide, j'aurai été incapable de trouver la solution seul!!
    Je me suis inspiré de votre travail pour tester une nouvelle version, qui numérote les lots de la même façon que les expéditions. Cela permet, à priori, de contourner le problème des lots codés AAEXXX_1kg.

    N'étant pas assez expert, je me demande si cette nouvelle version créé des failles que la votre ne présente pas? Dernier point que je n'ai pas su solutionner, la prise en compte de la conformité du lot pour l'écarter ou non des expéditions planifiées.

    Bien cordialement
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    En passant par une requête intermédiaire pour n'avoir que les lots "conformes", il est possible de faire ce planning. Ajouté un non conforme pour tester. A revérifier!

    Bonne continuation.
    Fichiers attachés Fichiers attachés

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de secteur fabrication
    Inscrit en
    Février 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de secteur fabrication
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2020
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    C'est plus que je n'espérai, merci encore pour votre aide!!

    Bien cordialement

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

Discussions similaires

  1. [AC-2007] Requête d'analyse croisée avec conditions
    Par neiluj26 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/10/2010, 14h39
  2. requête sur 2 tables avec condition
    Par boubout dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/02/2010, 08h31
  3. Requête sur 3 tables avec conditions
    Par graphiks dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2009, 10h00
  4. [Requête/SQL]Pb de "quote" avec un type memo
    Par Tintou dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/04/2007, 15h47
  5. [Requête/SQL]Mise à jour avec condition
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 22/04/2007, 23h14

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