Requete avec résultats non concordants

Résolu/Fermé
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 - 3 juil. 2015 à 21:49
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 - 13 juil. 2015 à 10:05
Bonjour

Je cherche à compter le nombre d'enregistrements selon différents critères (notamment le genre et la date de naissance) :
- j'ai d'abord compté en créant une requête Sélection dans laquelle j'ai un premier champ Genre (avec comme critères "Masculin") et un second champ Datenaissance avec comme critères <#01/09/2002# Et >#01/09/1997#
cette requête me sélectionne 7 enregistrements : j'en déduis donc qu'il y a 7 personnes masculines dont leur date de naissance est comprise entre les 2 dates indiquées

- pour éviter d'avoir à créer autant de requêtes que de critères que je souhaite, j'ai voulu tester une 2ème méthode à l'aide d'une requête Création de Table dont le champ est
NbM1217Masc: CpteDom("[Datenaissance]";"T_adherentformulaire";"[Datenaissance]<#01/09/2002#" & "And [Datenaissance]>#01/09/1997#" & "And [Genre]='Masculin'")

pour moi, le champ NbM1217Masc dénombre les enregistrements de T_adherentformulaire dont le genre est masculin et la date de naissance comprise entre les 2 dates indiquées
Dans cette requête, le champ NbM1217Masc vaut 11 !!

J'ai l'impression que les 2 méthodes sont identiques malheureusement elles ne donnent pas le même résultat : il y en a donc forcément une de fausse.

Avez-vous une idée de l'erreur que j'ai pu commettre pour l'une ou l'autre des solutions ?

Merci d'avance

3 réponses

Bonjour,
Attention! Plusieurs bizarreries dans tes écritures.
1) "j'ai voulu tester une 2ème méthode à l'aide d'une requête Création de Table "
En principe, les requêtes-création de table ne sont utiles que si tu veux créer une table indépendante de la 1ère à partir de données sélectionnées dans celle-ci. Càd le plus souvent lors d'un transfert de données ponctuel.

2) Tu écris l'opération:
"CpteDom("[Datenaissance]";"T_adherentformulaire";"[Datenaissance]<#01/09/2002#" & "And [Datenaissance]>#01/09/1997#" & "And [Genre]='Masculin'")"
Impossible de vérifier sur un autre ordinateur, mais écris plutôt :
CpteDom("[Datenaissance]";"T_adherentformulaire"; " [Datenaissance]>#01/09/1997# And [Datenaissance]<#01/09/2002# And [Genre]='Masculin' " )
En fermant les premiers guillemets du critère de sélection après la 1ère date, je pense que tu l'arrètes à ce point.
Bonne suite, tiens moi au courant
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
4 juil. 2015 à 07:32
Bonjour

Le changement ne modifie pas le résultat : toujours le même nombre d'enregistrement.

Concernant la requête création de table, que me conseilles-tu pour faire ce que j'ai à faire : je dois extraire le nombre d'adhérents selon différents critères (genre, ville, age ...).
Merci pour ton aide
0
Re...
Mets un extrait de ta base en ligne via cjoint.com, pour pouvoir regarder de plus près.
Pour ce qui est de le création de table, tu dois savoir que les requêtes peuvent s'enchainer sans problème, càd qu'une requête peut très bien utiliser une autre requête comme table de départ. Comme cela, il n'est pas du tout nécessaire d'enregistrer les résultats d'une requête dans une table pour enchainer une autre requête.
Pour ce qui est de pouvoir disposer d'autant de requêtes que tu veux, il suffit de prévoir un critère paramétré qui permet d'entrer chaque fois qu'on lance la requête d'entrer les valeurs qu'on souhaite.
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
4 juil. 2015 à 20:48
Voici le lien du fichier : https://www.cjoint.com/c/EGesUQ1dybN
0
Bonjour,
Bien vu de ta part, il y a une différence entre les 2 méthodes de calculs. A retenir!
En fait, l'expression CpteDom () fonctionne avec le format ango-américain de date. Càd que quand tu entres des bornes de date #01/09/1997# càd 1er sept 1997, il prend 9 jan 1997.
Pour corriger dans CpteDom() , il faut donc écrire #09/01/1997#, et alors on retrouve les résultats de la requête calcul.
Cela dit, mes autres remarques restent valables.
Bonne suite
0
http://www.cjoint.com/c/EGfrFzXNMuF
0
nlbmoi Messages postés 434 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 3 décembre 2023 24
13 juil. 2015 à 10:05
Merci, ça fonctionne !
0