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 06/11/2007, 12h55   #1
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
Par défaut une bd pour gérer des test sportifs

Bonjour, j'aimerai crée une bd qui me permettent de rentrer les resultats de divers test de sport connu, et ainsi d'aprés ces résultats selon le sexe et la fourchette d'age de la personne, savoir si elle est APTE ou INAPTE.

Donc pour cela j'ai crée une table PERSONNEL :
Nom, Prénom, Date de naissance, et le choix du sexe

une autre table RESULTATS :
avec un champ pour les tests de sports
un champ pour leur date de réalisation
et un champ pour les résultats

ensuite j'ai crée une requete AGE_PERSONNEL :
avec ce champ "Age: DiffDate("aaaa",[p_Naissance],Maintenant())"
qui me permet d'avoir l'age de la personne.

mais je ne sais pas comment faire pour dire ;

Si un homme à entre 18 et 23 et qu'il à un score entre 15 et 21 aux test de traction il est apte, sinon il est inapte.

Je ne sai pas comment faire cela, je pense qu'il faut crée un requete ???
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 13h08   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 884
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 884
Points : 10 740
Points : 10 740
Envoyer un message via MSN à jpcheck
bonjour,
tu peux mettre dans tes requêtes des critères sur l'age et la note, exemple:
Code :
UPDATE MaTable SET APTE=-1 WHERE AGE BETWEEN 18 AND 23 AND SCORE BETWEEN 15 AND 21
Apte étant un champs Oui/Non, et où -1 signifie vrai, et 0 faux.
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h23   #3
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89


J'ai donc crée ma requéte qui d'aprés les valeurs rentrée dans une table, celle ci rempli la requete, ainsi comme on peut le voir sur la photo on a :
- le nom de la personne
- son age (calculé par la requete)
- son sexe (Homme ou femme)
- l'épreuve qu'il à fait (parmis les 6 épreuves disponibles ; Killy, tractions, pompes, luc leger, gainage, souplesse)
- le résultat de l'épreuve
- la date de la réalisation de l'épreuve
- le nom de l'instructeur qui la noté
- et enfin les 4 derniére case corresspande à la 1er 2éme 3éme ou 4éme séance qu'il réalise.



Maintenant j'aimerais crée un mention APTE ou INAPTE d'aprés les résultats de l'épreuve qu'il réalise selon les critéres suivants :

si il est de sexe masculin
Pour l'épreuve du Killy :
agé de 18 à 29 ans il est APTE si son résultat est compris entre 110 et 119.
agé de 30 à 39 ans il est APTE si son résultat est compris entre 99 et 109
agé de 40 à 49 ans il est APTE si son résultat est compris entre 86 et 95.

Pour l'épreuve des pompes :
agé de 18 à 29 ans il est APTE si son résultat est compris entre 18 et 19.
agé de 30 à 39 ans il est APTE si son résultat est compris entre 15 et 17
agé de 40 à 49 ans il est APTE si son résultat est compris entre 14 et 15.

ect... pour les autres épreuve
et si la personne est une femme les critéres de resultat change encore.

Est ce que vous pensez que cela est réalisable ? avec les requetes, dois je crée une requéte pour chaque condition ? (il en faudrais plus de 50 dans ce cas !)
et comment faire pour crée un champ dans ma requetes qui me définira si la personne est apte ou inapte ???

Merci pour votre aide.
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h27   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 884
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 884
Points : 10 740
Points : 10 740
Envoyer un message via MSN à jpcheck
hello,
tu peux te faire une table en plus du style
T_Conditions
iConditionID
iAgeMin
iAgeMax
bHomme
iScoreMin
iScoreMax
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h29   #5
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
d'accord et aprés comment jpeu faire pour que cela coincide avec ma requete ?
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h51   #6
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 884
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 884
Points : 10 740
Points : 10 740
Envoyer un message via MSN à jpcheck
ben tu mets dans ta requêtes toutes les conditions :
Code :
1
2
Age between iAgeMin and iAgeMax
Score between iscoremin and iscoremax
etc.
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 15h16   #7
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
d'accord j'ai crée ma table avec ces conditions mais maintenant comment faire corresspandre cela avec ma requete ?
est surtout comme faire pour qu'il obtiennent la menssion APTE ou INAPTE ???

voila ma table avec les conditions qui fixe la personne apte


et voila ma requete avec la table condition mais comment insérer les conditons :


et ce que tu me dis c'est de rentre tous "betwen" en code sql, mais je ne sais pas du tous ou placer ça dans tous ce code :
Code :
1
2
3
SELECT [p_Nom] & " " & [p_Prenom] & " " & [p_Matricule] AS Nom, DateDiff("yyyy",[p_Naissance],Now()) AS Age, Personnel.p_sexe, Registre.r_epreuve, Registre.r_resultat, Registre.r_date, Registre.r_instructeur, Registre.r_seance1, Registre.r_seance2, Registre.r_seance3, Registre.r_seance4
FROM Personnel INNER JOIN Registre ON Personnel.p_Num = Registre.r_nom
WHERE (((Registre.r_seance1)=Yes) AND ((Registre.r_seance2)=No) AND ((Registre.r_seance3)=No) AND ((Registre.r_seance4)=No));

Désolé pour ma difficulté de compréhension. merci pour ton aide
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h53   #8
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 884
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 884
Points : 10 740
Points : 10 740
Envoyer un message via MSN à jpcheck
salut,
tu auras une requête du style:
Code :
SELECT Count(iCondition) FROM T_Condition, T_Personnel WHERE T_Personnel.AGE BETWEEN iAgemin AND iAgeMax AND iEpreuve='Killy' AND T_Personnel.bSexe = 'Homme' AND T_Personnel.iScore BETWEEN iScoreMin AND iScoreMax;
je peux pas te donner plus d'exemple, mais tu récupères le count, s'il est = 0 alors inapte, si =1 alors apte.
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 17h48   #9
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

Pourquoi une valeur Max ?

Si un homme de 40 fait plus de 95 au test de Killy est-il Inapte ?

La question vaut le coup d'être posée, suivant la réponse on va pouvoir s'affranchir de tout un tas de contrainte where.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 20h01   #10
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
c'est vrai loufab il n'y a pas besoin de valeur max juste de valeur mini

car une personne entre 18 à 29 ans est APTE si son résultat est supérieur à 110.

comment écrire cela en SQL, dans ce cas iScoreMax n'est pas nécessaire, et donc par quoi remplacer BETWEEN

et jpchek j'ai fait ce que tu ma dit mais j'obtient ce message :

entrer une valeur de paramètre :
iCondition


gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 20h09   #11
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Tous simplement remplacer le between Borne1 and Borne2 par

pour du supérieur strict
pour du supérieur ou égale
On s'affranchi de la colonne Max.

Je pense qu'en y regardant de plus près on peut encore apporter des améliorations (pour les tranches d'ages notamment).

Peux-tu poster un exemple de tes données (juste les tables) ? si j'ai le temps je vais y regarder de plus près.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 20h41   #12
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
ok donc voila de quoi est constitué ma base de donnée :

ma table condition qui fixe l'age et le score mini à atteindre sinon on est INAPTE:


ma table personnel qui regroupe toutes les personnes, et qui fixe la date de naissance, et le sexe :


ma table registre qui permet de rentrer les scores obtenu par les personnes au différents tests de sport avec la date de réalisation et le moniteur de sport :


enfin la requete age_personnel qui affiche les resultats de la table personnel et la table registre tout en affichant le sexe et l'age :


Ainsi je compte me servir de cette derniére requetes pour dire une personne :

Pour l'épreuve du Killy :
agé de 18 à 29 ans est APTE si son résultat est supérieur ou égal à 110 .
agé de 30 à 39 ans est APTE si son résultat est supérieur ou égal à 99.
agé de 40 à 49 ans est APTE si son résultat est supérieur ou égal à 86.
etc.

obtienne la mention APTE les autres la mention INAPTE.

UN GRAND GRAND merci pour ton aide
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 12h59   #13
Membre régulier
 
Inscription : février 2007
Messages : 509
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 509
Points : 89
Points : 89
Personne pour m'aider
gastoncs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 13h29   #14
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Affirmatif mon adjudant !

Voici une ébauche : killy, homme, tout age, tout résultat
Code :
1
2
3
4
 
SELECT resultat_epreuve.nom, resultat_epreuve.age, resultat_epreuve.sexe, resultat_epreuve.epreuve, resultat_epreuve.resultat
FROM resultat_epreuve
WHERE (((resultat_epreuve.age)<=29) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=110)) OR (((resultat_epreuve.age)<=39) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=99)) OR (((resultat_epreuve.age)<=49) AND ((resultat_epreuve.sexe)="homme") AND ((resultat_epreuve.epreuve)="killy") AND ((resultat_epreuve.resultat)>=86));
On évite ainsi le between pour l'age et le résultat.

A developper !
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab 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 12h09.


 
 
 
 
Partenaires

Hébergement Web