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

VBA Access Discussion :

choisir un prix en fonction d'une date dans un sous form


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut choisir un prix en fonction d'une date dans un sous form
    Bonjour à tous

    je créé une base gestion de commande classique.

    j'ai un form principal basé sur la requète commande/client et un sous form basé sur la requète détail commande et produit.

    la requète détail commande/produit a les champs:

    n° commande, N° produit, date achat, prix A, prix B, qté commandée

    Mon problêm est: comment avoir dans le sous form le prix A ou B en fonction de la date d'achat? car les prix varient selon cette date

    exemple: je saisi dans le sous form: date d'achat 01/09/2008 donc le prix sera B car le prix est B pour les achat >= au 01/09/2008

    j espère que vous voyez le besoin.

    - utiliser VB ( après sortie du champ date d'achat?) ou une expression dans la requète?

    j avoue que j ai du mal.

    merci de votre aide

    a bientot

    steph

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    On peut envisager quelque chose genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tbl_Commande.Num_Command, tbl_Produit.Num_Produit, tbl_Commande.date_achat, 
           tbl_Produit.prix_A, tbl_Produit.prix_B, tbl_Commande.[qt_ commande], 
    IIf([date_achat]>=#9/1/2008#,[qt_ commande]*[prix_B],[qt_ commande]*[prix_A]) AS Total
    FROM tbl_Commande INNER JOIN tbl_Produit ON tbl_Commande.Num_Produit = tbl_Produit.Num_Produit;
    On peut retenir la fonction"IIF()", (VraiFaux en Français) qui se trouve être la jumelle de Si() d'Excel. Elle comprend trois argument :
    -->Condition avec opérateurs classiques de comparaisons d'Access
    -->Valeur de résultat si la condition est OK
    -->Valeur de résultat si la condition n'est pas OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exemple:VraiFaux([MonChamp]<>"";[MonChamp];"En attente")
    Ceci ne doit rester qu'une mesure transitoire. Il est évident que tu es appelé à poursuivre la réfléxion au sujet de l'évolution des prix. Il est hors de question de retoucher la requête pour chaque changement de prix ainsi que de durée.

    Il se trouve de nombreuses pistes afin de pallier à ceci.
    Par exemple dans une table de coéficients suivant période ou date.

    Il est à retenir : Pas d'espace, d'accents pour le nom des champs. Si besoin de clarté dans les noms on peut utiliser "_" Genre -->Tbl_Exemple

    Cordialement.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    merci francishop

    mais cest pas excatement ce que je souhaite.

    j ai un peu modifié ma structure de table

    Ma table détailcommande a les champs suivantsj ai rajouté prixfinal)

    N°commande,N°produit,Dateachat,Prixfinal,qtécommandée

    ma table produit a les champs suivants:

    N°produit,prixA,prixB

    donc la requete source du sous form a les champs:

    N°commande,N°produit,Dateachat,prixfinal,qtécommandée,total:[prixfinal]*[quantitécommandée]

    on suppose que le prixA va du 01/01/2008 au 31/07/2008 et le prixB du 01/08/2008 au 31/12/2008. ( on va supposer pour faire plus simple que chaque année, je rentrerai les nouvelles dates dans le code)

    comment faire pour que lorsque je saisi comme dateachat, 10/08/2008, mon champ prixfinal se remplisse du prixB ( je désire voir le montant de prixfinal apparaitre) ? et ou mettre ce code , après mise à jour du champs dateachat?


    voila, j avoue que c est un peu casse tête

    merci de votre aide

    steph

  4. #4
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Tu peux essayer comme cela

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    Merci Renardo

    c est effectivement une bonne idée et ça marche impec.!

    Juste pour aller un peu plus loin.As tu une idée si par ex la date de séparation était le 15/08/2008 c esta dire un mois non entier?

    sinon super

    a bientot

    Steph

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    merci à tous

    je considère ce post comme résolu

    a +

    steph

  7. #7
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Modele avec date

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

Discussions similaires

  1. [AC-2010] Limiter des résultats en fonction d'une date dans un entête de formulaire
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/04/2013, 21h18
  2. Réponses: 1
    Dernier message: 27/05/2011, 13h35
  3. trier date dans datagridview (sous forme shortdate)
    Par salihovic dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/11/2007, 17h18
  4. Réponses: 2
    Dernier message: 25/09/2007, 21h03
  5. Réponses: 6
    Dernier message: 19/01/2007, 15h21

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