Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2007, 13h27   #1
Invité de passage
 
Inscription : mai 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 4
Points : 0
Points : 0
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
yvevmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2007, 10h02   #2
Membre habitué
 
Avatar de anouar_chaieb
 
Inscription : mai 2004
Messages : 198
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : mai 2004
Messages : 198
Points : 111
Points : 111
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
anouar_chaieb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2007, 18h49   #3
Membre éclairé
 
Avatar de dr_feelgood
 
Patrick Gassmann
Inscription : mars 2005
Messages : 282
Détails du profil
Informations personnelles :
Nom : Patrick Gassmann
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2005
Messages : 282
Points : 329
Points : 329
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
dr_feelgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 11h08   #4
Invité de passage
 
Inscription : mai 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 4
Points : 0
Points : 0
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
yvevmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 11h52   #5
Membre éclairé
 
Avatar de dr_feelgood
 
Patrick Gassmann
Inscription : mars 2005
Messages : 282
Détails du profil
Informations personnelles :
Nom : Patrick Gassmann
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2005
Messages : 282
Points : 329
Points : 329
cette conception est meilleure:
Citation:
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
Type de fichier : doc euro_conception.doc (19,0 Ko, 7 affichages)
Type de fichier : zip euros.zip (168,0 Ko, 11 affichages)
dr_feelgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 12h01   #6
Invité de passage
 
Inscription : mai 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 4
Points : 0
Points : 0
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 :
=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
yvevmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 11h35   #7
Membre éclairé
 
Avatar de dr_feelgood
 
Patrick Gassmann
Inscription : mars 2005
Messages : 282
Détails du profil
Informations personnelles :
Nom : Patrick Gassmann
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2005
Messages : 282
Points : 329
Points : 329
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
dr_feelgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 23h08   #8
Invité de passage
 
Inscription : mai 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 4
Points : 0
Points : 0
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
yvevmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 08h08   #9
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Dites les gars... sinon, une simple requête, ca marche pas ?

une 'tite liaison entre tables, et zou !
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 19h28   #10
Membre éclairé
 
Avatar de dr_feelgood
 
Patrick Gassmann
Inscription : mars 2005
Messages : 282
Détails du profil
Informations personnelles :
Nom : Patrick Gassmann
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2005
Messages : 282
Points : 329
Points : 329
Citation:
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.....
dr_feelgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web