|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 4 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : mai 2004 Messages : 198 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Patrick GassmannInscription : mars 2005 Messages : 282 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 4 ![]() |
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 |
|
|
00
|
|
|
#5 | |
|
Membre éclairé
![]() Patrick GassmannInscription : mars 2005 Messages : 282 ![]() |
cette conception est meilleure:
Citation:
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 |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 4 ![]() |
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)))) Et de toutes façons, un grand merci pour le temps consacré à m'aider |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Patrick GassmannInscription : mars 2005 Messages : 282 ![]() |
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 |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 4 ![]() |
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 |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() |
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 ! |
|
00
|
|
|
#10 | |
|
Membre éclairé
![]() Patrick GassmannInscription : mars 2005 Messages : 282 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com