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 :

Afficher le résultat d'une requête‎ dans la table principale [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut Afficher le résultat d'une requête‎ dans la table principale
    Bonjour,
    je trouve que ce forum est bien alimenté en infos merci pour cela

    j'ai une question que j'arrive pas a résoudre , je suis novice en access 2007

    voila ma question :
    j'ai deux table :

    table1 [commande]
    N°commande
    date
    Produit
    quantité1
    couleur 1
    quantité2
    couleur 2
    Prix total
    table2 [Type de produit]
    Produit
    Prix

    j'ai fait une requête pour [Quantité1+Quantité2]commande*[Prix]type de produit pour avoir le prix tt

    jusqu’à la c bon, mais je veux que le résultat de la requête s'affiche dans [prixtotal]table1 pour chaque nouvelle entré

    j’espère que je claire et que ma question trouve une réponse
    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    1. Pour répondre de manière brute à ta question, il faut faire une requête qui réunisse les deux tables sur le Produit et dans laquelle tu fasses le calcul désiré.

      PrixTotal = (Table1.Quantité1 + Table1.Quantité2) * Table2.Prix

      Dans ce cas, tu ne dois pas avoir de champ PrixTotal dans la Table1 et tu dois afficher le résultat de ta requête plutôt que la Table1 pour obtenir ta colonne PrixTotal. En d'autres termes, cette requête doit être la source de ton formulaire.


    2. Pour répondre autrement à ta question, le problème est mal posé. Si par exemple le prix d'un article doit changer un jour, tous les prix totaux de ton historique vont changer aussi et tes stats seront faussées.

      Tu dois ajouter à ta table commande le champ Prix et le renseigner dès que le produit est renseigné en allant y chercher le Prix qui est alors le prix par défaut actuel (PrixCourant), quand le prix de la ligne est le prix pratiqué (PrixPratiqué).

      La requête précédente doit être réalisée aussi, mais elle devient plus simple puisqu'elle se contente de la table Commande, avec le calcul du PrixTotal :

      PrixTotal= (Quantité1 + Quantité2) * PrixPratiqué

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Merci pour ta réponse , alors j'ai tout faut
    j'ai pas du tout pensé "tous les prix totaux de mon historique vont changer"
    je vais reprendre toutes a Zéro
    Merci encore pour ta Réponse ,

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par mumen Voir le message
    1. Pour répondre de manière brute à ta question, il faut faire une requête qui réunisse les deux tables sur le Produit et dans laquelle tu fasses le calcul désiré.

      PrixTotal = (Table1.Quantité1 + Table1.Quantité2) * Table2.Prix

      Dans ce cas, tu ne dois pas avoir de champ PrixTotal dans la Table1 et tu dois afficher le résultat de ta requête plutôt que la Table1 pour obtenir ta colonne PrixTotal. En d'autres termes, cette requête doit être la source de ton formulaire.


    2. Pour répondre autrement à ta question, le problème est mal posé. Si par exemple le prix d'un article doit changer un jour, tous les prix totaux de ton historique vont changer aussi et tes stats seront faussées.

      Tu dois ajouter à ta table commande le champ Prix et le renseigner dès que le produit est renseigné en allant y chercher le Prix qui est alors le prix par défaut actuel (PrixCourant), quand le prix de la ligne est le prix pratiqué (PrixPratiqué).

      La requête précédente doit être réalisée aussi, mais elle devient plus simple puisqu'elle se contente de la table Commande, avec le calcul du PrixTotal :

      PrixTotal= (Quantité1 + Quantité2) * PrixPratiqué
    Salut,
    pourriez tu m'expliquer d'avantage sur le truc pour garder l'historique
    qu'on je veux changer les prix un jour ? j'ai pas tout compris
    merci

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    En fait l'idée est d'ajouter un champ Date dans ta table2 Type de produit pour que le prix d'un produit soit valable pour une période donnée.

    Ci-joint un échange sur les prix avec historique :
    http://www.developpez.net/forums/d11...que-date-prix/

    Tu fais une recherche avec les mots-clé "prix-historique-date" et tu verras que beaucoup de fil sont basés sur ce thème.

    Bonne continuation
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  6. #6
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Citation Envoyé par lokardz Voir le message
    Salut,
    pourriez tu m'expliquer d'avantage sur le truc pour garder l'historique
    qu'on je veux changer les prix un jour ? j'ai pas tout compris
    merci
    Tu as deux tables : Produit et Commande.

    • Les produits sont créés pour servir et durer longtemps. Ils sont le support de l'action. Si tu entres un Prix dans cette table, il s'agit de son prix actuel, celui qui sera pratiqué lors d'une transaction ultérieure (vente, achat, etc.).
    • Les commandes sont des mouvements au quotidien, ce sont des transactions. Elles se caractérisent toujours au moins par une date. Une vente est aussi une transaction.


    Prenons en exemple une simple transaction de vente.

    Quand tu achètes un litre de lait, le prix qu'il coûte est inscrit sur l'étiquette en rayon et il est reporté sur le ticket de caisse lors de l'achat. Grossièrement, l'étiquette représente le produit et le ticket de caisse la vente.

    Dans ton analyse, tu n'inscris pas le prix sur le ticket de caisse, mais tu considères qu'il suffit d'aller regarder le prix sur l'étiquette. Moralité, si le lait augmente, tout se passe comme si le prix changeait sur ton ticket de caisse de la veille. Et quand tu feras la somme de tes tickets de caisse, c'est le dernier prix connu qui sera pris en compte.

    madefemere a raison de te suggérer de chercher de l'information sur les transactions.

    En fait l'idée est d'ajouter un champ Date dans ta table2 Type de produit pour que le prix d'un produit soit valable pour une période donnée.
    Mais ça, excuse moi madefemere, c'est non ! C'est mal expliqué et en plus si on essaye de le faire quand même, on part en usine à gaz ! (je sais j'ai fait )

    Tu dois faire tes tables comme suit :

    Produit
    - Description
    - PrixCourant

    Commande
    - Numéro
    - Produit
    - Quantité
    - PrixPratiqué
    - PrixTotal= Quantité * PrixPratiqué

    Je ne discute pas des deux quantités et des couleurs que tu gères à ta manière.

    Au moment ou ta commande va être saisie, quand le produit est renseigné, tu dois avoir un petit code qui va chercher le PrixActuel de l'article pour le copier dans le PrixPratiqué de ta commande.

    Je te répète le conseil précédent : tu es débutant en analyse des besoins et il te faut asseoir tes bases pour faire un développement propre qui anticipe tes besoins. Sinon de mauvaises surprises t'attendent ! Ce n'est pas du temps perdu, c'est de l'investissement.

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    merci beaucoup pour vos réponses
    j'ai recrée les tables mais j'ai beau cherché a afficher les valeur de prix courant et les coller dans prixpratiqué mais j'ai pratiquement rien trouver

    c pas une requête mise a jour nan !

    j'ai trouver ce bout de code mais j'arrive pas a l'utiliser
    docmd.RunCommand acCmdPaste

  8. #8
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Citation Envoyé par lokardz Voir le message
    merci beaucoup pour vos réponses
    j'ai recrée les tables mais j'ai beau cherché a afficher les valeur de prix courant et les coller dans prixpratiqué mais j'ai pratiquement rien trouver

    c pas une requête mise a jour nan !

    j'ai trouver ce bout de code mais j'arrive pas a l'utiliser
    docmd.RunCommand acCmdPaste
    D'abord il fallait avoir une bonne structure, j'espère que tu saisis bien ce que tu as fait.

    Là, on change de registre. Ce n'est plus de l'analyse, c'est du codage. Tu vas devoir mettre un peu de VB pour faire marcher ça.

    Normalement, tu as créé un formulaire qui permet de saisir la commande. Dans ce formulaire, tu es supposé avoir entre autre un contrôle du type liste déroulante qui te permet d'assigner le produit à la commande.

    Si c'est oui, alors on continue.

    Dans les propriétés de ce contrôle, tu as les événements. Choisis l'événement 'Après MAJ' (Mise A Jour) et clique sur le bouton '...' ensuite demande le 'Générateur de code'. Tu te retrouve dans l'éditeur VBA avec quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ClefProduit_AfterUpdate()
     
    End Sub
    ou 'ClefProduit' est le nom que tu as donné à ton contrôle .

    Dans ce code tu vas écrire une instruction qui ressemblera à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ClefProduit_AfterUpdate()
        Me!PrixPratiqué = DFirst("PrixCourant", "Produit", "ClefProduit = " & Me!ClefProduit)
    End Sub
    Ce que j'ai appelé ClefProduit est le nom de la clef primaire que tu es sensé avoir créée dans ta table Produit et qui est le contenu

    Quand ce code sera au point, au moment ou l'article sera défini dans la commande, alors le prix de la commande sera lu dans l'article et mis dans la commande.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    enfin , il s'affiche dans le formulaire merci MUMEN
    au fête je me demande si je peu l'affiche dans la table sans passé par le formulaire

  10. #10
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Citation Envoyé par lokardz Voir le message
    enfin , il s'affiche dans le formulaire merci MUMEN
    N'oublie pas à la fin


    au fête je me demande si je peu l'affiche dans la table sans passé par le formulaire
    ?

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

Discussions similaires

  1. [WD10] Afficher le résultat d'une requête paramétrée dans une tabe
    Par Menadel dans le forum WinDev
    Réponses: 8
    Dernier message: 23/05/2012, 17h58
  2. Afficher le résultat d'une requéte sql dans un textbox
    Par benhmou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/03/2012, 19h18
  3. Réponses: 2
    Dernier message: 07/02/2012, 09h17
  4. Réponses: 13
    Dernier message: 26/07/2007, 08h50

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