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

Modélisation Discussion :

Afficher valeur d'un champ sous condition


Sujet :

Modélisation

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Afficher valeur d'un champ sous condition
    J'essaie de créer un programme sous access pour gérer ma collection d'euros.
    J'ai créé une table qui correspond au catalogue de base.
    J'ai créé une autre table liée qui affiche les côtes des pièces selon 4 qualités possibles: TTB-SUP-SPL-FDC.
    Jusque là, tout va bien, avec requête et formulaire mon catalogue s'affiche.

    Pour pointer ma collection, j'ai rajouté un champ au catalogue dans lequel j'indique la qualité de ma pièce (TTB ou SUP ou SPL ou FCD) ou vide si je ne l'ai pas.

    Ma question ou mon sujet est comment obtenir le listing de ma collection avec les côtes correspondantes affichées?
    En logique c'est du style: si valeur de "Macollection"(dans table catalogue) = "TTB" alors "Cotecollection" = "Cote TTB" (table cotes) ou si valeur de"Macollection"(dans table catalogue) = "SUP" alors "Cotecollection" = "Cote SUP" (table cotes)ou si valeur de "Macollection"(dans table catalogue) = "SPL" alors.......
    Faut-il écrire une macro en VBA ou peut-on faire ce choix conditionnel directement sous Access et sous quelle forme?

    D'avance, merci de votre aide.

    yvevmax

  2. #2
    Membre habitué Avatar de anouar_chaieb
    Inscrit en
    Mai 2004
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 276
    Points : 178
    Points
    178
    Par défaut Re
    Je n'ai pas bien compris votre PB, mais en général tu peux utiliser une macro
    "définir valeur" en mettant une condition dans la zone condition
    Quel est le plus rapide? lire le FAQ:

    http://access.developpez.com/faq/ Ou bien créer un post?

  3. #3
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    Il me semble que ton problème vienne de la conception de départ de ta base.

    Je me demande a quoi ta 2e table est liée....

    Tu pourrais créer la table principale (de collection)
    Dans cette table
    un champ OUI/NON pour savoir si tu la possèdes ou non
    un champ numérique ETAT pointant sur la table secondaire liée indiquant les 4 états possibles
    1 tres bon état
    2 état supérieur
    3 ....
    4 ....
    donc un champ numérique, tu cliques l'onglet liste de choix lorsque tu crée ta table, et tu la lies a la table secondaire.

    Tu crée un formulaire continue, avec la table principale.

    dès lors tu peux sélectionner dans ton formulaire la liste des pièces que tu veux afficher
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut précisions pour la conception
    a) à dr feelgood: ce n'est pas vous qui est également sur moneta? Si c'est le cas les précisions vous seront plus compréhensibles.

    b)j'enregistre le catalogue "euro4" avec une table principale: 1 enregistrement=1pièce et une sous-table liée dans laquelle j'indique les 4 cotes possibles: TTB, SUP, SPL, FDC.

    A partir de ces tables, je veux:
    1) créer ou pointer ma collection et avoir la cote correspondante à l'état
    et éventuellement pour être complet: pouvoir y ajouter des pièces hors catalogue comme des erreurs, artefacts...
    2) créer une liste des pièces "à trouver"
    3) créer la liste des pièces en doubles, avec la quantité correspondante

    Pour 1), ne faut-il pas faire une requete "création de table" qui deviendrait la table "macollection"? Pour l'instant, j'avais rajouté une colonne ou je pointais l'état mais je n'arrive pas à récupérer la cote de la pièce en fonction de l état TTB, SUP...
    De plus je vais me retrouver coincer si je veux rajouter des enregistrements hors catalogue.

    Pour 2 et 3), ce pourrait être également une création de table?
    Dans ce cas cela ferait 4 tables principales:
    la table "catalogue"
    la table "macollection"
    la table "àtrouver"
    la table "doubles"

    Qu'en pensez-vous?

    yvevmax

  5. #5
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    cette conception est meilleure:
    Pour 2 et 3), ce pourrait être également une création de table?
    Dans ce cas cela ferait 4 tables principales:
    la table "catalogue"
    la table "macollection"
    la table "àtrouver"
    la table "doubles"
    mais vous n'avez pas besoin de la table a trouver et la table doubles.
    Je vous joins en pièces jointes la conception des tables (document word) et le début de l'application (très sommaire) sous le nom euros.zip Apres chargement de ce fichier changer l'extension . zip par .mdb pour l'utiliser.

    Dans cet exemple, toute pièce de votre collection doit être auparavant être crée dans la table catalogue (je ne saisis pas la notion de de pièces hors catalogue, mais considérez le catalogue de toutes les pièces existantes, disons leur référence)

    si vous avez exemplaires de la même pièce, chaque exemplaire sera identifié par son numéro ID de la table ma collection.

    la liste des doubles sera obtenu par une requête trouver les doublons
    la liste des pièces a trouver sera obtenu par une requête de non correspondance
    pouer visualiser dans votre table ma collection les pièces en tres bon etat, il vous suffira de sélectionner dans le formulaire ce que vous voulez afficher.

    Je n'ai pas créé dans la base d'exemple un formulaire pour éditer la table catalogue

    Je ne suis pas du tout utilisateur de moneta .

    Pensez a changer l'extension de le pièce jointe euros.zip en . mdb
    Fichiers attachés Fichiers attachés
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut suite
    Bien lu votre réponse et les fichiers attachés; en réalité c'est un peu plus détaillé pour être fidèle au catalogue, mais le principe est le même.

    Par contre, mon problème de cote n'est pas résolu, car vous rentrez la valeur achat à la saisie de la table collection. Hors pour moi, c'est une donnée de la table catalogue.
    Pour l'instant j'étais parti avec 1 enregistrement=1 pièce, quelque soit l'état.
    Je peux bien sûr multiplier les enregistrements par 4 en faisant 1 ligne=1 pièce 1 état. Le nombre de pièces étant de l'ordre de 1000, cela va faire 4000 lignes, ce qui n'est pas très heureux; j'avais donc créé une sous-table liée pour les 4 cotes cataloque.

    En excel, j'avais à peu près le même catalogue et à droite un champ ou une colonne ou j'indique l'état de la pièce de ma collection et une colonne "cote macollection" dans lequel une formule condition du type si "état macollection = SUP" mettre valeur "coteSUP" dans "cote macollection" ou si .....(SPL) ou...

    C'est donc cette condition qui en fonction de l'état pointé dans mon champ "macollection" va rechercher la valeur du champ coteTTB ou cote SUP...de ma table catalogue et la met donc dans le champ 'cote macollection".
    Si c'est possible en excel, je pense qu'on doit pouvoir faire la même chose dans une requête d'access en VBA ou en SQL.
    Exemple formule excel qui marche dans valeur du champ "cote macollection":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(R4="SPL";M4;SI(R4="SUP";L4;SI(R4="TTB";K4;SI(R4="FDC";N4;0))))
    Donc si on peut écrire la même chose au niveau du champ access, je pense que mon problème sera résolu.

    Et de toutes façons, un grand merci pour le temps consacré à m'aider

  7. #7
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    Si j'ai bien compris tu veux noter les 4 cotes possibles pour chaque piece existant dans la table catalogue

    le plus élégant me semble alors être de créer une nouvelle table cotes; liée à la table catalogue par le champ ID de table catalogue
    Pour l'introduction des données de la table catalogue, tu crée un formulaire collection, avec un sous formulaire cotes..

    Pour retrouver la cote dans ta table collection, il s'agit d'une requete entre l'ID de la piece (table collection) et la cote de la table COTES
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut suite
    Pour le premier paragraphe, c'est bien ce que j'ai fait: une table catalogue et une tables cotes liée (ID+coteTTB+coteSUP+coteSPL+coteFDC) et je rentre une valeur monétaire. Ca marche et je sais éditer le catalogue complet avec les cotes.

    Quant je passe au pointage de macollection, je choisis l'ID de la piéce, j'ai un champ "Etat" ou je choisis 1 des 4 choix possibles TTB, SUP, SPL, FDC.
    J'ai créé un champ "cote macollection".
    Et je voudrais simplement que si je choisis "TTB" dans "Etat", obtenir la valeur de "coteTTB" dans "cote macollection".
    comme j'ai fait sous excel; on fait un test sur les 4 valeurs possibles et on obtient la valeur correspondante dans la cellule.

    En conclusion, je coince sur comment écrire dans table "macollection" ou plutôt dans une requete: pour 1 ID(1 ligne), si la valeur de "Etat" est =TTB, mettre la valeur "coteTTB" (table catalogue) et la mettre dans "cote macollection" puis tester SUP, SPL et FDC et sinon =0.

    En fait, la saisie de "Etat" agit comme un pointeur (c'est à dire que si c'est vide, cela veut dire que je n'ai pas la pièce) et si c'est pointé "TTB", je dois récupérer la cote TTB du catalogue .

    On doit bien pouvoir trouver l'équivalent de la formule en excel, sous access?

    Bien à vous,

    yvevmax

  9. #9
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Dites les gars... sinon, une simple requête, ca marche pas ?

    une 'tite liaison entre tables, et zou !

  10. #10
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    Pour retrouver la cote dans ta table collection, il s'agit d'une requete entre l'ID de la piece (table collection) et la cote de la table COTES
    C'est ce que je disais dans mon dernier message, une simple requête suffit.....
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

Discussions similaires

  1. [AC-2000] Formulaire afficher certain champ sous condition
    Par ClementZa dans le forum IHM
    Réponses: 0
    Dernier message: 15/07/2010, 13h16
  2. Réponses: 2
    Dernier message: 13/08/2009, 10h24
  3. valeur d'un champs sous condition
    Par albatros50 dans le forum IHM
    Réponses: 3
    Dernier message: 10/05/2007, 09h42
  4. Afficher un champs sous condition
    Par wachoo31 dans le forum IHM
    Réponses: 3
    Dernier message: 09/05/2007, 13h08
  5. Afficher un champ sous condition
    Par Cantalou dans le forum Access
    Réponses: 24
    Dernier message: 01/02/2006, 15h25

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