Besoin d'un conseil pour une requête

me755

XLDnaute Nouveau
Bonsoir,
Désolée de vous déranger, j'ai encore une petite concernant une requête.
On veut savoir le nombre de parrains qui parrainent +d'un enfant , sachant que l'on a les relations suivantes:

requete partagé sur ZimageZ

Selon moi pour calculer le nombre d'enfant parrainés par un parrain il faudrait que dans la table "parrain" il y ait le "code enfant".
Et si ce dernier est > à 1 alors le parrain pourra parrainer plusieurs enfants.

Or le code enfant ne figure pas dans la table parrain puisque un enfant ne peut etre parrainé que par une seule personne, tandis qu'un parrain peut parrainer plusieurs enfants,
bref je suis perdue et je ne vois pas comment faire dans ce cas là, pourriez vous m'aider ?

Merci pour votre aide
 

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

Super, merci beaucoup ça marche!

et dernière question :

Comment fait-on pour avoir l'age de quelqu'un sur access, car si je fais date() - [enfant]![date_naissance] par exemple, ca nous donne le résultat en date alors que je veux en chiffre comme "15"ans par exemple ?
 

chris

XLDnaute Barbatruc
Re : Besoin d'un conseil pour une requête

Bonjour

VraiFaux(CNum(Format([date_naissance];"mmdd"))>CNum(Format(Date();"mmdd"));-1;0)+DiffDate("yyyy";[date_naissance];Date())

Selon la version Access ou Windows il peux être nécessaire de franciser les codes année (yyyy --> aaaa) et jour (dd --> jj)
 

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

Merci, mais je ne comprends pas bien, je débute donc j'ai un peu de mal et je n'ai jamais vu une expression du type VraiFaux(CNum(Format([date_naissance];"mmdd"))>CNum(Format(Date();"mmdd"));-1;0)+DiffDate("yyyy";[date_naissance];Date())

Je l'ai placé dans ma requête mais quand je veux la mettre en marche, on m'affiche 'fonction Cnum non définie"
J'ai essayé de vous joindre le fichier mais a chaque fois c'est trop gros :s (j'ai access 2007)
 

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

Sinon j'ai crée un module avec :
Function fAge(DateNaissance As Date) As Integer
fAge = DateDiff("yyyy", DateNaissance, Date) _
+ (Format(Date, "mmdd") < Format(DateNaissance, "mmdd"))
End Function


et dans ma requête j'ai ecris (vu que l'on veut l'age moyen des enfants parrainés):

Age: Moyenne(fAge([date_naissance]))


ça a l'air de marcher, vous pensez que c'est correct?
 

chris

XLDnaute Barbatruc
Re : Besoin d'un conseil pour une requête

Re

Oui c'est bon.

La création de la fonction en VBA n'est pas indispensable mais simplifie les requêtes si on doit régulièrement faire ce calcul.

Pour la francisation : selon la version Access et la version Windows, il faut exprimer codes les années et jours à la française (a pour année et j pour jour) au lieu de le faire en Us (Y pour Year et D pour day).

Je n'ai pas encore réussi à cerner pourquoi cette francisation marche sur certaines configs et pas sur d'autres...

En vba le problème ne se pose pas : tout est US.
 

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

Merci beaucoup

J'ai encore un petit problème concernant une autre requête
On veut avoir le nombre d'enfants parrainés de moins de 14 ans et qui travaillent
On a :

requeteee partagé sur ZimageZ

Pour le champ "travaille" j'ai utilisé une variable booléenne, et donc pour le critère je ne sais pas quoi y mettre, j'ai essayé "oui" et "vrai" mais ça ne fonctionne pas..
merci!
 

chris

XLDnaute Barbatruc
Re : Besoin d'un conseil pour une requête

Bonjour

Cela dépend comment a été définit le champ Travaille : si c'est un champ oui/non, oui (sans les guillemets") doit fonctionner sauf si le format associé a été changé en vrai/faux ou actif/inactif.

Essaye aussi 1 ou -1
 

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

Merci ça marche

J'ai aussi un probleme concernant les sous formulaires

On a les relations suivantes :

sousformulaire partagé sur ZimageZ

J'ai crée le formulaire responsable mais je voudrais qu'il apparaisse aussi sur la meme page le "libellé" et le "prix HT" qui sont dans la table matériel ainsi que la "quantité fournie" qui est dans la table "FOURNIR"


Faut il donc créer un sous sous formulaire pour que les 3 éléments (libéllé,prix HT et quantité fournie" apparaissent sur le meme sous formulaire?

Je ne sais pa si vous m'avez comprise :D

Merci
 

chris

XLDnaute Barbatruc
Re : Besoin d'un conseil pour une requête

Re

Pas évident comme cela : si je comprends bien, il y a un formulaire Responsable, un sous formulaire fournir.

Pour afficher le libellé et prix Hors taxe d'un enregistrement du sous-form, il faut ajouter des champs indépendants et les associer chacun à une requête qui recherche pour l'un le libellé, pour l'autre le prix, dont le code matériel est le même que l'enregistrement dans le sous formulaire.

Concernant la structure, ce qui est bizarre c'est que Fournir doit pouvoir se répéter dans le temps et il n'y a pas de date.
Le prix risquant d'évoluer dans le temps il devrait, soit être dupliqué dans fournir lors d'une fourniture, ou bien stocké dans une table de tarifs datés : sinon on ne sait retrouver le prix d'une fourniture à la date de celle-ci...

PS edit : si je reprends le MCD global : un responsable ne peut pas fournir 2 fois le même matériel à une école. Cela semble rigide car j'imagine qu'au fil du temps il faut renouveler...
 
Dernière édition:

me755

XLDnaute Nouveau
Re : Besoin d'un conseil pour une requête

ha mince! je n'avais pas vu les choses comme ça pour le responsable qui ne peut fournir deuxfois le meme matériel a une école :S
Effectivement c'est assez embêtant, a quoi le voyez vous ?
J'ai pas le temps de le modifier malheuresement je dois rendre mon projet dans peu de temps..commnt pourrais je le justifier ?

Pour ce qui est des sous formulaires je n'est pas vrmt compris,ça m'a lair assez compliqué :s
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 333
Membres
111 103
dernier inscrit
Maxime@mar