|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour à tous !
Voilà je sui sune toute nouvelle utilisatrice d'Access et bien évidemment j'ai quelques soucis. Mon problème est le suivant. J'ai une paramètre [A] et un paramètre [B] qui me permettent de trouver une valeur de points [points]. Ce que je voudrais faire, c'est que ma table de données (dans laquelle un utilisateur saisira entre autre les valeurs de [A] et de [B]) soit liée à ma tableAB qui me permette de trouver [points]. J'ai plusieurs fois le même [A] avec des valeurs de [B] différentes, comme j'avais un problème pour mettre mes clés, j'ai donc essayer de hierarchiser mes tables : une table mère avec les valeurs de [A] liée à une table fille contenant [B] et les points correspondants. Mais je n'arrive pas à mettre en place ma requête. Je ne sais pas comment procéder pour lui expliquer que c'est la donnée de [A] et celle de [B] qui me permette de calculer [points]. J'espère avoir été suffisamment claire. Si quelqu'un a une idée sur le sujet, je suis preneuse. Bonne journée. |
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() Robert JAMINRetraité Inscription : juillet 2009 Messages : 1 223 ![]() |
Bonjour,
Habituellement on parle de paramètres dans les requêtes or vous dites Citation:
De plus A et B ce sont des valeurs textes ou des noms de valeurs numériques? Des exemples avec les données et les résultats à obtenir serait les bienvenus. Car pour moi ce n'est pas très clair. Désolé. Relisez votre texte et essayé d'énoncer plus clairement la demande quelqu'un peut certainement vous aider.
__________________
Cordialement. RJ |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour,
Je vais essayer dans plus claire. Dans ma colonne [A] je passe les valeurs suivantes : 2, 4, 6, 8, ... Dans ma colonne [B], je passe d'autres valeurs 1000, 1500, 2000, 2500 ... Mes nombres de points [points] sont affectées par exemple comme ça : Si [A]= 2 et [B]= 1000 alors [points]=175 Si [A]= 2 et [B]= 2000 alors [points]=250 Si [A]= 4 et [B]= 1000 alors [points]=150 Si [A]= 4 et [B]= 1500 alors [points]= 175 ... C'est donc pour ça que j'avais un problème de clé primaire si je rentrais tout dans la même table, on voit bien que [A] n'est pas unique. C'est pour ça que j'ai tenter de hierarchiser mes tables. La première contenant juste les valeurs possible pour [A] (que l'on peut appeler "Table_A") me permet de "trier" et de garder les [B] et les [points] possibles pour cette valeur de [A] (cette sous -table peut être appelée "Table_points") Ma requête doit prendre ça en compte pour affecter le nombre de points, sachant que le [A] et le [B] seront saisi par l'utilisateur et proviendront d'une autre table "Donnee". Mon idée était de lier "Table_A" à "Table_points" pour les hierarchiser en mettant un lien entre les [A] des 2 tables. Ensuite je voulais lier le [A] de "Donnees" au [A] de "Table_A" et le [B] de "Donnees" au [B] de "Table_points" pour que je puisse récupérer mes [points]. Mais c'est là que je n'arrive pas à faire fonctionner ma requête. Ai-je été plus précise ? Merci pour votre aide et bonne journée |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour C.breizh,
Ton soucis semble concerner les "relations complexes" (n---n). En effet : - un élément de Table_A peut être associé à plusieurs éléments de Table_B ; - un élément de Table_B peut être associé à plusieurs éléments de Table_A. ==> la solution serait de passer par une table association. Table_A : - Valeur_A (clé primaire) ... Table_B : - Valeur_B (clé primaire) ... Table_Association : - Valeur_A (clé primaire) - Valeur_B (clé primaire) - Points ...
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Re-Bonjour !
Merci beaucoup Richard_35 pour ta réponse. J'ai essayé de passer par la Table_Association et ça marche !! J'ai crée ensuite mes relations et j'ai fait ma requête bassée sur ma Table_Donnes. Lorsque je lui donne Valeur_A et Valeur_B, il me sort bien Valeur_Points ! Maintenant j'essaie de voir comment faire lorsque la Valeur_B saisie (dans ma Table_Donnees) est entre 2 valeurs de ma table (Table_Association), et donc n'existe pas en tant que telle, pour mettre en place une régression linéaire pour calculer Valeur_Points grâce aux Valeur_B qui se situent au dessus et au-dessous de la valeur saisie. C'est pour l'heure encore un mystère. Bonne journée |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour C.breizh,
Hum... tu changes un peu la donne. Citation:
Lors de la saisie Valeur_B, il faut que procèdes en deux étapes :
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour !
Alors effectivement mes tentatives pour faire ma régression linéaire ne fonctionnent pas. J'ai essayer de faire ça : Table_A Valeur_A (clé primaire) Table_B Valeur_Bmin Valeur_Bmax Table_Association Valeur_A Valeur_Bmin (clé primaire) Valeur_Bmax (clé primaire) Valeur_pointsMax Valeur_pointsMin J'ai ensuite crée ma requete où je récupère Valeur_A dans Table_Donnees et Valeur_B dans Table_Donnees. Ce que je veux, c'est que si Valeur_B est entre Valeur_Bmin et Valeur_Bmax alors on calcule Valeur_points par une régession linéaire. Le coefficient directeur est : Valeur_coeffDir=(Valeur_pointsMax-Valeur_pointsMin)/(Valeur_Bmax-Valeur_Bmin) L'ordonnée à l'origine est donnée par : Valeur_ordo = Valeur_pointsMax - Valeur_coeffDir*Valeur_Bmax Ce calcul étant fait dans ma requête. Mon problème c'est pour justement rappeler mes données et créer mes relations. Avez-vous été confronté à un cas similaire ? Faut-il toujours passer par une association et faire une requete croisée ? Merci pour vos réponses |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Cela paraît mieux, compte tenu de ce que tu veux faire.
Quelques observations : Table_A Valeur_A (clé primaire) ==> OK. Table_B Valeur_Bmin (clé primaire) Valeur_Bmax (clé primaire) ==> en effet, une tranche doit être unique. Table_Association Valeur_A (clé primaire) Valeur_Bmin (clé primaire) Valeur_Bmax (clé primaire) Valeur_pointsMax Valeur_pointsMin ==> en effet, pour une Valeur_A, une tranche doit être unique. Relations Table_A -1---∞- Table_Association, via Valeur_A ; Table_B -1---∞- Table_Association, via Valeur_Bmin/Valeur_Bmax.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Merci beaucoup pour ces corrections Richard_35.
Relations.JPG Il me reste tout de même un dernier problème : je n'arrive pas à mettre la valeur que je souhaite pour Valeur_B. J'ai essayer de mettre des critères lors de la création de ma table_Association (Valeur_B Entre Valeur_Bmin Et Valeur_Bmax), mais cela n'est pas correct car j'ai l'impression qu'il ne sait pas où je regarde. En fait dans ma table de requete, je ne peux pas éditer la valeur_B. Mes champ calculés par contre fonctionnent correctement. Je vous mets quelques images pour vous montrer ce que j'ai fait. Bonne soirée Table_Association.JPG Table_Requete.JPG |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
J'ai le sentiment que nous nous dirigeons vers une usine à gaz... mais, je peux me tromper.
Juste pour comprendre, dans ton exemple du début Citation:
Je ne l'ai pas trouvé par tâtonnement sur Excel. En fait, une fonction qui donnerait [points] = Fonction_a_trouver([A],[B]). Un truc du style : [points] = [B]*3,14116/[A]*cos(phi) (c'est un exemple complètement délirant)
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonsoir Richard_35,
Et bien non, pas de formule valable pour tout (et encore dans mes exemples, je n'ai mis que quelques points). C'est pour ça que j'ai joint ma table_Association où j'ai mis quelques unes de mes valeurs calculées (dans mon précédent message, c'est d'ailleurs avec ces dernières valeurs que je travaille). En fait, pour une valeur_A fixée, on peut considérer qu'entre 2 Valeurs_B, on est linéaire on calcule donc les points par une regression linéaire du type Valeur_point= Coeff_Directeur1 * Valeur_B + Ordonnee_Origine1. Dans l'intervalle suivant, on calcule le nombre de point par Valeur_point= Coeff_Directeur2 * Valeur_B + Ordonnee_Origine2 |
|
|
00
|
|
|
#12 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour C.breizh,
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour,
Ca y est c'est bon, j'ai réussi à mettre mes filtres pour être dans la bonne tranche. J'ai fait ça dans la requête, dans la colonne Valeur_B qui provient de ma Table_Valeur. Bonne journée et merci pour votre aide. |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour,
En fait, j'ai crié victoire trop tôt. Mon calcul se fait correctement, mais je ne peux rien éditer dans ma requête, je ne peux pas créer de nouvel enregistrement. Je vous montre tout ça dans ma pièce jointe Essai_regression_2011-07-12.zip Ce que je veux faire, c'est saisir Valeur_A et saisir Valeur_B dans ma requête et que tout le reste soit écrit ou calculé (suivant les colonnes) automatiquement. Merci et bonne soirée. |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
Citation:
NB : je ne connais pas VBA et ne pourrais donc pas t'aider à écrire du code.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
En fait,nnormalement, dans les requêtes, nous pouvons "éditer", donc créer un nouvel enregistrement, de façon à ce que dans le formulaire associé, nous puissions saisir à la main de nouvelles valeurs.
On a une petite étoile en tout début de ligne dans la requête. Dans mon cas ce n'est pas possible. Par conséquent, dans le formulaire, je ne peux pas mettre d'autres valeurs que celles enregistrées. Ce qui n'est pas mon objectif, puisque je souhaite saisir Valeur_A et Valeur_B pour que tout le reste soit calculé. Normalement, cela peut se faire sans passer par du code. Bonne journée |
|
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour C.breizh,
Citation:
En bref, quand Access ne propose pas, dans la requête même, la mise à jour ou la création d'enregistrement, c'est qu'il lui est impossible de le faire (requête groupée, jointure entre plusieurs requêtes, etc...). Donc, ta requête pourrait servir de base à un formulaire à créer, lequel gérerait les manipulations de données.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2011 Messages : 25 ![]() |
Bonjour,
Merci Richard_35, cela explique donc pourquoi je ne peux rien saisir dans ma requête. Bonne journée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com