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 :

Disponibilité du materiel


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut Disponibilité du materiel
    Bonjour
    Je (re)lance ma problématique dans ce forum
    Cela fait suite a cette conversation
    http://www.developpez.net/forums/d14...e-entre-dates/

    Je récapitule vite fait
    Mon soft de devis gère des quantités de matériels qui sont loués
    Les dates de location ne sont pas forcement les dates d 'immobilisation du matériel
    Lors de la création d un devis je rempli mes lignes d'article
    J aimerais, a chaque ligne remplie ,connaitre la disponibilité et la quantité disponible durant ces dates
    Si l article est dispo savoir combien il m en reste
    Si pas dispo savoir sur quelle autre devis il a été pris

    J’espère être un peu clair....


    Une Fonction Dsum avec des critères de date peut être... je ne sais pas trop


    Merci a vous

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Personnellement j'irai vers un truc DCount("TaClef"; "TaTableDeDispo"; "datecherchee BETWEEN [date début] AND [date fin] and [estDispo]") or DSum("TaClef"; "TaTableDeDispo"; "datecherchee BETWEEN [date début] AND [date fin] and [estDispo]") à mettre dans la source de données.

    [estDispo] devrait être défini selon ton indicateur de disponibilités. Il est probable que ce ne ne soit pas un simple champ booléen mais une combinaison de logique et de champs.
    Bote qu'il faut utlliser les opérateurs en anglais dans la chaîne.
    Si ta source de données est un table, il faudra faire une requête avec des champs calculés pour les dénombrements.

    DCount() et DSum() ne sont pas les fonctions les plus rapides, il se peut que tu doives te tourner vers des sous-requêtes mais c'est plus compliqué.

    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
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir à tous,

    Pour compléter la solution proposée par René et juste au niveau du critère, je verrais bien une chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSum(..., ..., "[date début]<=#" & Format(Forms!F_Devis![date fin],"mm/dd/yyyy") & "# AND [date fin]>=#" & Format(Forms!F_Devis![date début],"mm/dd/yyyy") & "# and [estDispo]")
    Forms!F_Devis![date début] et Forms!F_Devis![date fin] font référence aux zones de texte "date début" et "date fin" situées sur le formulaire "F_Devis"...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Oulalala....
    Merci a tous les deux mais la vous m'avez un peu perdu....
    Je n ai pas de "TaTableDeDispo"

    Je suis désolé mais il va falloir aller plus doucement avec moi

    Comment doit ete architecturer cette table?
    Quelle éléments doit elle contenir?

    Merci en tout cas de vous penchez sur mon problème!

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Oui ça semble un peu compliqué

    Il faudrait réaliser une requête paramétrée R_Stock, qui donne la quantité disponible pour chaque article durant une période donnée.

    Cette requête serait basée par exemple sur tes tables T_Commande et T_DetailCommande, mais comme j'ignore la structure de ta base, il me manque des infos à ce stage...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Ci joint mes tables et relations
    si ca peut aider....Nom : relations.jpg
Affichages : 184
Taille : 216,7 Ko

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Comment mets-tu à jour le champ "quantite_stock" dans la table "T_Article" ?

    Quel est ton activité ?

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Quel est ton activité ?
    Société de location audiovisuel

    Comment mets-tu à jour le champ "quantite_stock" dans la table "T_Article" ?
    Je vais essayer d’être un peu plus précis

    Nous avons un parc de matériel composé d'une quantité finie d'articles
    Par exemple 12 x micros de telle référence

    du coup cette quantité stock est "fixe"
    elle peut être redéfinie si nous rachetons 4x micro de même référence par un formulaire

    L’idée c'est que nous louons régulièrement plus (pour revenir a notre exemple de 12 micros) que 12 micros
    opération A 6 micros du 15/04 au 20/04
    opération B 5 micros du 17/04 au 21/04
    opération C 6 micros du 18/04 au 18/04

    Dans ce cas la mon déficit de micro est de 5 micros
    Grâce a la requête que je veux mettre en place
    Je pourrais savoir:
    que je suis en deficit de 5 micros durant cette période (uniquement le 18/04)
    du coup 2 options s offre a moi
    Peut être que l’opération A et B non pas besoin de tous ces micros..
    Je dois sous-loué des micros chez un confrère

    Est un peu plus clair?

    Merci pour votre aide!!

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Il faudrait déjà faire des liens ou jointures entre tes tables sur les champs clés primaires/étrangères à l'intérieur d'une requête "R_Location".

    L'idée serait d'avoir dans cette requête les colonnes "debut_loc", "fin_loc", "Quantite", "ID_Article", "Ref_Article"...

    Ensuite, à partir de cette requête "R_Location", tu reprends l'idée de Marot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSum("Quantite", "R_Location", "ID_Article=" & [ID_Article] & " and [debut_loc]<=#" & Format(Forms!F_Devis![fin_loc],"mm/dd/yyyy") & "# AND [fin_loc]>=#" & Format(Forms!F_Devis![debut_loc],"mm/dd/yyyy") & "#")
    Tu injectes ensuite cette fonction dans une requête basée sur la table "T_Articles" et que tu mets sur la propriété RowSource de ta liste déroulante servant à choisir ton article dans le détail de ton devis :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select ID_Article,Ref_Article,Description, DSum("Quantite", "R_Location", "ID_Article=" & [ID_Article] & " and [debut_loc]<=#" & Format(Forms!F_Devis![fin_loc],"mm/dd/yyyy") & "# AND [fin_loc]>=#" & Format(Forms!F_Devis![debut_loc],"mm/dd/yyyy") & "#") as QteLouée
    From T_Articles;

    Cette requête va t'afficher la quantité louée pour cette période par article...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Nom : r_location.jpg
Affichages : 200
Taille : 613,2 KoNom : relations.jpg
Affichages : 176
Taille : 175,0 Ko

    Comme ca ??

    Pour inserer ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSum("Quantite", "R_Location", "ID_Article=" & [ID_Article] & " and [debut_loc]<=#" & Format(Forms!F_Devis![fin_loc],"mm/dd/yyyy") & "# AND [fin_loc]>=#" & Format(Forms!F_Devis![debut_loc],"mm/dd/yyyy") & "#")
    Je crée une nouvelle requete? ou dans la partie SQL de ma requete R_location?

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Tu as oublié de lier "T_Devis" et "T_Contenu_Devis" pour avoir les colonnes "debut_loc" et "fin_loc" dans la requête "R_Location".

    Ensuite, as-tu un détail dans le formulaire "F_Devis" avec une liste déroulante pour choisir l'article ?

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Comme ca??
    Images attachées Images attachées   

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    A quoi correspond la colonne Modules dans le détail du devis et comment se nomme le formulaire des devis ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    A quoi correspond la colonne Modules dans le détail du devis
    C'est un tri supplémentaire dans l’état de mon devis
    Par exemple pour un devis je pourrais avoir un Lieu A, Lieu B etc etc
    Ça me permet de regrouper tout ça correctement dans mon état avec des sous totaux de prix
    (je crois savoir que le nom module est un peu particulier....)

    il se nomme F_Devis avec son sous formulaire
    SF_ligne_devis

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Quelle est la requête qui alimente la liste déroulante module ?

    Pour la fonction qui calcule la quantité louée je verrais ceci pour le moment, au vue de la requête "R_Location" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSum("Quantite", "R_Location", "ID_Set=" & [ID_Set] & " and [debut_immo]<=#" & Format(Forms!F_Devis![fin_immo],"mm/dd/yyyy") & "# AND [fin_immo]>=#" & Format(Forms!F_Devis![debut_immo],"mm/dd/yyyy") & "#")
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    C est une requête R_modules

    Composé de la tables T_modules (id_module ; id_contenu devis; nom_module; ID_devis)
    Jointe avec la table T_devis par ID_devis

    Cette requête posséde 3 champs Nom_Module ID_devis, num_devis

    Le champ ID_devis a comme critère [Formulaires]![F_devis]![ID_devis]

  17. #17
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Sur quelle colonne choisissez vous vos articles dans le détail du devis ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    Je selectionne un catégorie qui me filtre mes sous catégorie
    de la j ai mes articles (ID_set) qui en decoule

  19. #19
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Quand vôtre formulaire "F_Devis" est ouvert et que vos dates "début_immo" et "fin_immo" sont renseignées, normalement cette requête devrait vous afficher les qté louées par set:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select ID_Set, Ref_Set, Description, Quantite_Stock - nz(DSum("Quantite", "R_Location", "ID_Set=" & [ID_Set] & " and [debut_immo]<=#" & Format(Forms!F_Devis![fin_immo],"mm/dd/yyyy") & "# AND [fin_immo]>=#" & Format(Forms!F_Devis![debut_immo],"mm/dd/yyyy") & "#"),0) as QteDispo 
    From T_Set;
    Dans cette requête, la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DSum("Quantite", "R_Location", "ID_Set=" & [ID_Set] & " and [debut_immo]<=#" & Format(Forms!F_Devis![fin_immo],"mm/dd/yyyy") & "# AND [fin_immo]>=#" & Format(Forms!F_Devis![debut_immo],"mm/dd/yyyy") & "#")
    renvoie la quantité louée par set.

    Mais c'est très compliqué de finaliser quelque chose comme cela.

    Je m'absente, postez moi votre base si besoin, je la regarderai à mon retour...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 163
    Points : 54
    Points
    54
    Par défaut
    ok je vous envoie ça en MP
    Merci
    a tout a l’heure
    je suis connecter jusqu a 17h30

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

Discussions similaires

  1. Connaître mon materiel
    Par FilipeVV dans le forum Composants
    Réponses: 2
    Dernier message: 17/03/2005, 13h05
  2. bon choix , choix de la configuration materielle
    Par madmortal dans le forum Débuter
    Réponses: 15
    Dernier message: 16/08/2004, 21h18
  3. Haute Disponibilité
    Par ovh dans le forum Réseau
    Réponses: 12
    Dernier message: 07/09/2003, 20h29
  4. interruption materiel port parrallele
    Par pyrostan dans le forum C
    Réponses: 2
    Dernier message: 13/01/2003, 08h22
  5. Réponses: 2
    Dernier message: 04/06/2002, 10h34

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