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 SQL (3 tables, somme et multiplication)


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut Requête SQL (3 tables, somme et multiplication)
    Bonjour,

    Etant débutant sur Access mais disposant de bonnes connaissances en SQL (parce que je programme en PHP depuis plusieurs paires d'années).
    Voici mon problème.

    Mon application a pour but de calculer les dépenses lors d'un chantier. J'ai donc réalisé un formulaire sur lequel je saisie les données relatives à ce chantier ensuite, j'aimerais disposer d'un autre formulaire sur lequel le bilan apparait.
    Sans entrer plus dans les détails voici là ou je bloque. Je dispose de 3 tables comme le montre l'image jointe.
    A partir de ces tables j'aimerait faire ceci :

    Récupérer la liste de noms/prénoms le nombre d'heures de production et le numéro de la fiche (disponible à partir d'une liste déroulante) dans "Main d'oeuvre" pour en déduire le Poste (= participant) et le tarif horaire (dans "cout participants").

    Une fois que j'ai ces données, pour chaque employé je veux multiplier le nombre d'heure de production par le tarif horaire et enfin, additioner chaque totaux obtenus.

    Est-ce que cela est possible par une simple requête SQL ?
    Si oui,
    1 - Comment récupére-t-on dans la requete le numéro de la fiche sélectionnée dans le formulaire (nom du champ : Fiche).
    2 - Est-ce que mes noms de champs, avec des apostrophes & des parenthèses passeront dans les requêtes ?
    Images attachées Images attachées  

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 282
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    Est-ce que cela est possible par une simple requête SQL ?
    Oui, c'est possible par une "simple" requete SQL en faisant des jointures sur les trois tables.


    Comment récupére-t-on dans la requete le numéro de la fiche sélectionnée dans le formulaire (nom du champ : Fiche).
    Il suffit, dans ta requête de faire référence à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [MonFormulaire]![fiche]
    Attention, pour que ça fonctionne, il faut que MonFormulaire soit ouvert au moment de la requête.

    Est-ce que mes noms de champs, avec des apostrophes & des parenthèses passeront dans les requêtes ?
    Oui, tes champs passeront, mais il est toujours préférable d'éviter les espaces et les caractères spéciaux, dans tous les noms (Tables, champs, formulaires, états, requêtes etc...).
    En effet, si tu regardes bien, tu as partout l'occasion de mentionner le libellé sous-lequel tu souhaite que ton "objet" apparaisse a l'utilisateur, independemment du nom "technique."

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Merci beaucoup pour toutes ces réponses. Je vais de ce pas essayer.
    Concernant les jointures, cela ne me permettra pas de faire la multiplication entre le tarif horaire et le nombre d'heures il me semble.

    Comment dois-je procéder ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 282
    Points : 356
    Points
    356
    Par défaut
    Avant de t'aider à aller plus loin, essaye de d'abord changer tes noms de champs...

    Exemples :
    • N° de fiche -> Fiche_Id
    • N° de chantier -> Chantier_Id
    • ...
    • Durée de déplacement (HH:mm) -> Duree_Deplacement (type : Date/Time; Input mask : 99:00;0;_)
    • etc...


    et utilise la propriété "Caption" du champ de tes tables pour y mettre un libellé en clair.

    Reviens-nous avec un screenshot de tes tables quand tu auras terminé, j'essayerai alors de te montrerai comment résoudre tous tes problèmes

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Je m'en charge de ce pas !

    Je t'envairais un screen de mes tables une fois renommées ainsi que la copie de ma requête (sans la multiplication que je ne sais pas encore faire)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Je n'arrive pas à renommer les tables, lorsque j'effectue un clique droit dessus je ne peux que "Renommer le raccourci" Comment dois-je faire ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 282
    Points : 356
    Points
    356
    Par défaut
    Probablement parce que ce sont des tables liées (les tables physiques sont dans une autre base).
    Pour changer les noms des tables et des champs, il faut :
    • aller dans la base qui les contient et faire les modifications
    • revenir dans la table des programmes, supprimer les tables liées
    • relier les tables renommées


    Une autre solution consisterait a renommer le "raccourci" mais il faudra de tout manière aller dans la base qui contient la table pour renommer les champs.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Hum ... je n'ai pas encore trouvé comment faire. Je dois m'absenter, je verrais celà ce soir et reviendrais ici même si besoin.

    Merci

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Bonjour, suite à un manque évident de temps je n'ai pas trouvé comment renommer les tables mais j'ai du passer à la suite.
    J'ai donc le nombre d'heure de production et le cout horaire par personne.

    J'aimerais maintenant savoir comment faire la multiplication entre les deux sachant que l'heure est au format HH:mm

    Enfin, comment afficher le résultat dans une zone de texte de mon formulaire ?
    Sachant que la requête est exécutée lors du clic sur un bouton.

    Merci d'avance.

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 755
    Points : 57 603
    Points
    57 603
    Billets dans le blog
    42
    Par défaut
    bonjour,

    Citation Envoyé par oOXimOo
    J'ai donc le nombre d'heure de production et le cout horaire par personne.
    J'aimerais maintenant savoir comment faire la multiplication entre les deux sachant que l'heure est au format HH:mm
    il y a une astuce dans la FAQ:
    Calculer le résultat d'un tarif à la seconde à partir d'un tarif et d'une heure.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Hum, merci pour cette astuce, il ne me reste plus qu'à me mettre au VB si je comprends bien. Malheureusement pour le moment je n'y connais rien du tout en ce langage.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Bon, afin de pouvoir avancer encore, il me faudrait un peu d'aide.
    j'ai ma requête SQL me permettant de récupérer le taux horaire ainsi que le nombre d'heure.
    J'ai aussi grace au post de f-leb, le script VB me permettant d'effectuer le calcul de la somme total.

    Mais pour pouvoir me servir de tout cela il me faut résoudre un mystère. Comment dois-je m'y prendre pour pouvoir éxécuter du VB au clic sur un bouton ?

Discussions similaires

  1. Problème de requête SQL entre tables
    Par sarahg77100 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/12/2011, 14h13
  2. Requête SQL sur table jointes
    Par Jinx_ dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/09/2009, 07h27
  3. [Debutant] Requête SQL Multi-Tables
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/02/2008, 11h47
  4. [Requête/SQL] 2 tables
    Par megapacman dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/04/2007, 11h34
  5. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 10h33

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