Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 09/07/2011, 08h39   #1
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
Par défaut Requete et tables hierarchisées

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.
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 18h51   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,
Habituellement on parle de paramètres dans les requêtes or vous dites

Citation:
J'ai une paramètre [A] et un paramètre [B] qui me permettent de trouver une valeur de points [points].
et j'ai le sentiment en lisant votre demande que vous parlez de tables, donc précisez ce que vous entendez par paramètre.
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
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 11h49   #3
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 12h22   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
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.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 15h45   #5
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 09h51   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour C.breizh,

Hum... tu changes un peu la donne.

Citation:
Envoyé par C.breizh
.../... comment faire lorsque la Valeur_B saisie (dans ma Table_Donnees) est entre 2 valeurs de ma table (Table_Association) .../...
==> Je te laisse fureter du côté des requêtes "sélection" : passes par l'assistant (QBE), il est très bien pensé.

Lors de la saisie Valeur_B, il faut que procèdes en deux étapes :
  • repérage de la valeur immédiatement inférieure, donc utilisation :
    • du tri décroissant ;
    • du TOP 1.
  • repérage de la valeur immédiatement supérieure, donc utilisation :
    • du tri croissant ;
    • du TOP 1.

Citation:
Envoyé par C.breizh
.../... 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
==> toi seule connaît la règle du jeu.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 10h28   #7
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 12h27   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
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.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 17h56   #9
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 18h33   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
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:
Envoyé par C.breizh
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
==> existe-t-il une règle de calcul qui donnerait la valeur de [points] à partir des deux valeurs [A] et [B] ?
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.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 20h28   #11
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 09h44   #12
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour C.breizh,

Citation:
Envoyé par C.breizh
Et bien non, pas de formule valable pour tout .../...
==> alors tu devrais obtenir ce que tu souhaites avec, lors de la saisie Valeur_B, un processus en deux étapes :
  • repérage de la valeur immédiatement inférieure, donc utilisation :
    • du tri décroissant ;
    • du TOP 1.
  • repérage de la valeur immédiatement supérieure, donc utilisation :
    • du tri croissant ;
    • du TOP 1.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 09h45   #13
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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.
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 17h02   #14
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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.
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 19h06   #15
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
Envoyé par C.breizh
Mon calcul se fait correctement, mais je ne peux rien éditer dans ma requête, je ne peux pas créer de nouvel enregistrement.
==> pas compris le sens de cette phrase. A partir de ta requête, si elle est correcte, il faut que tu déclenches une action de création d'un enregistrement (via un formulaire, par exemple) : tu ne peux pas le faire, directement, dans ce type de requête.

Citation:
Envoyé par C.breizh
Je vous montre tout ça dans ma pièce jointe
==> impossible de lire les .accdb (Access 2003).

NB : je ne connais pas VBA et ne pourrais donc pas t'aider à écrire du code.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 09h16   #16
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
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
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h12   #17
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour C.breizh,

Citation:
Envoyé par C.breizh
En fait,nnormalement, dans les requêtes, nous pouvons "éditer", donc créer un nouvel enregistrement .../...
==> eh non, pas avec toutes les requêtes, uniquement avec les requêtes "simples".

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.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2011, 16h13   #18
Invité de passage
 
Femme
Étudiant
Inscription : juillet 2011
Messages : 25
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 25
Points : 4
Points : 4
Bonjour,
Merci Richard_35, cela explique donc pourquoi je ne peux rien saisir dans ma requête.
Bonne journée
c.breizh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h17.


 
 
 
 
Partenaires

Hébergement Web