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 :

[Débutant]Comment faire des tranches de nombre dans une tabl


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Débutant]Comment faire des tranches de nombre dans une tabl
    Bonjour!

    Voila, ma question va surement vous paraitre débile, mais j'ai cherché sur le forum la réponse et je n'ai pas trouvé.

    Je crée une base de donnée pour l'entreprise dans laquelle je travaille, et il y a un mois je n'y connaissais strictement rien à access (jamais ouvert).

    J'ai appris par moi-même, et je suis arrivé à leur faire une base de donnée très basique bien sur, mais qui tient la route et qui correspond à leurs besoins. Mais je ne sais pas programmer (je fonctionne surtout avec plusieurs tables, requêtes, macros... il doit y avoir moyen d'optimiser mais bon ca fonctionne).

    Et aujourd'hui, je bloque.
    On m'a demandé de faire un formulaire qui générera un bon de commande (un état).

    Donc j'ai fait un formulaire dans lequel on rentre coordonnées etc, numéro des articles et nombre d'articles. Ca génere le prix total, le nombre darticles total, tout va bien .

    Le problème c'est que suivant le nombre d'articles et le code postal le prix du transport est différent, et là je coince :

    J'ai fait une table qui associe une zone (1, 2, 3 et 4) suivant le code postal. Maintenant, il faudrait que je fasse une table répertoriant les tarifs suivant le nombre d'article, suivant la zone, et enfin relier le tout (j'espere que vous suivez toujours)

    Donc pour la table prix/nombre d'article, premier problème

    En gros je veux faire ca :
    Nombre d'article ----zone---- prix transport
    1 ---------------------- 1 ------- 2€
    2 ---------------------- 1 ------- 3€
    1 ---------------------- 2 ------- 10€
    2 ---------------------- 2 ------- 12 €

    etc
    mais c'est là que ca se corse, parce qu'il faut que je fasse 10 tranches, du genre "entre 1 et 12", "entre 13 et 24", etc jusqu'à 3000 !

    Et ce genre de truc :
    Nombre d'article -------------zone------prix du transport
    1<x<12 ------------------------1 --------- 2€
    13<x<24 ---------------------- 1 ---------- 3€
    1<x<12 ------------------------2 ---------- 10€
    13<x<24----------------------- 2 ----------- 12 €
    Ca marche pô



    Donc voila ma première question : comment faire des tranches sans avoir à taper tous les nombres jusqu'à 3000 :mad:



    Deja si vous m'expliquiez ca ce serait genial, je sens que ca va être tout con, mais je rame.


    ----------

    Ensuite 2e problème; mettons que je sois arrivé à faire mes tranches.

    La grille de tarif qu'on m'a donnée en gros c'est ca :


    ------------- 1à 12---13à24--------25à100-------------101à200
    Zone 1 : --10€ -----15€ ------1€*nb d'articles -- 0.8€*nb d'articles etc
    Zone 2 etc


    En gros pour 2 tranches c'est un forfait, et pour le reste c'est proportionnel au nombre d'articles.

    Si vous avez suivi, en gros j'ai une requete supplémentaire qui va avoir cette tête :
    Nb d'articles----Zone d'apres code postal------Tarif d'apres la zone
    101--------------------- 1 --------------------------- 0.8

    Moi je me voyais bien faire un champ =[Nb d'articles]*[Tarif] pour avoir le prix total du transport; mais les 2 premieres zones c'est un forfait, donc comment faire ?



    Merci d'avoir eu la patience de me lire et désolé pour ces questions qui doivent être d'une naïveté désarmante, mais c'est dur d'apprendre tout seul... alors si jamais vous avez compris ce que je voulais faire, merci de me répondre...

    Merci d'avance

    Cordialement

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Je vais tenter de te répondre.

    Pour la question 1 :

    Pour les tranches, tu devrais créer une table tranche avec 4 champs (t_mini, t_maxi, zone_id, prixtranspo) qui te permettra de retrouver facilement la plage d'article avec un nbarticle BETWEEN t_mini AND t_maxi
    et une jointure entre la zone des articles comptés et la zone de la tranche.

    Pour la question 2 :

    Tu peux surement créer un type prix en rajoutant un champ à la table tranche pour indiquer le type de calcul à faire du genre :

    t_mini t_maxi zone_id prixtranspo typecalcul
    1 12 1 2 forfait
    1 12 4 5 proport

    tu pourrais faire un iif(typecalcul = "Forfait", prixtranspo, prixtranspo * nbarticle) pour dire que si c'est un forfait pour cette tranche et cette zone alors il faut juste prendre le prix du transpo sinon on fait un prix proportionnel.

    en espérant t'avoir aidé un peu.
    ps : Si tu as des problèmes sur les requêtes suivant ce modèle, n'hésites pas à poster.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci, je suis en train d'essayer, je te tiens au courant.

    Bonne idée pour la 1, je m'acharnais à vouloir mettre un truc du style 1<#<12 dans le champ nombre alors qu'il suffisait de faire 2 champs

    Pour la 2 par contre, j'ai compris ce que tu m'as dit de faire, par contre je suis pas sur de savoir bien utiliser le iif, enfin j'essaye et je te dirais.

    Merci beaucoup en tout cas

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    pour la 2 il suffit de mettre dans la table
    mini 0
    maxi 753417
    et ca va fonctionner sauf si un abruti commande plus de 753 417 articles à la même commande (certains abrutis sont bien aimables)
    ca évite les cas particuliers
    Elle est pas belle la vie ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je n'ai pas très bien compris ce que tu voulais dire random... comment cela différencie t'il le forfait du proportionnel ?

    Pour en revenir à ce que m'avais conseillé fdraven, le 1 marche et le 2 je touche le bout: j'ai fait un champ "type de calcul" avec ou forfait ou prop; mais comme prévu j'ai un problème pour expliquer ca dans la requete.

    J'ai ma requète qui se présente comme ca désormais :
    (j'essaye de détailler au maximum pour expliquer au mieux, mais si c'est évident à chaque fois pour vous dites le moi et j'abrègerai...)


    nb bouteilles ----zone-----tranche-----prix-----type calcul

    ca affiche par ex ca:

    -------10---------- 4 -----------1------- 11.56-----forfait
    Il me reste plus qu'à faire le champ transport, mais le iif il en veut pas...

    En gros je veux faire un champ qui dise :

    si [typecalcul]=forfait alors [transport]=[prix], sinon [transport]=[prix]*[nb bouteilles].

    Voila, vous écririez ca comment ?

    encore merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ben un prix constant pour des quantités comprises entre 0 et + l'infini
    est une forfait quantitatif
    le coefficient de corrélation prix quantité est de 0 avec une certitude
    de 1
    c'est clair ça ?
    Elle est pas belle la vie ?

  7. #7
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 125
    Points : 128
    Points
    128
    Par défaut
    vraifaux([typecalcul]=forfait ;[transport]=[prix];[transport]=[prix]*[nb bouteilles])

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Impeccable, avec le Vraifaux ca fonctionne !

    Merci à tous de votre aide

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

Discussions similaires

  1. comment faire insert, delecte et updata dans une table original
    Par helene0618 dans le forum kettle/PDI
    Réponses: 4
    Dernier message: 17/03/2009, 14h19
  2. [débutant]Comment faire des fichiers log
    Par smutmutant2003 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 12/06/2007, 15h39
  3. comment faire aparaitre un module joomla dans une page statique
    Par Nadjia.ccce dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 31/05/2007, 19h13
  4. Réponses: 1
    Dernier message: 05/10/2006, 17h21
  5. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40

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