OVH Cloud OVH Cloud

Req analyse croisée

4 réponses
Avatar
Véronique DEFRAIN
Bonjour à tous,

Je reviens sur le fil Req analyse croisée qui a débuté le 16.03.06 et
solutionné par la fonction ConcatForQuery2 et je rencontre maintenant un
nouveau problème, voici le message d’erreur à l’exécution de la requête :

« Type de données incompatible dans l’expression du critère »

Je suppose que c’est pour la raison suivante :
La source de la req analyse croisée est une requête sélection comportant les
opérations LEFT et RIGHT JOIN, il y a donc certains enregistrements en entête
de ligne sans aucune valeur mais qui doivent cependant apparaître dans le
résultat final (recettes sans aucune dateTP) comme ceci :


Recette classe1 classe 2 classe 3 etc

Crudités 12.09.06 08.10.06
10.12.06

Lasagnes 12.09.06 06.01.07

Tiramisu 12.09.06

Bavarois " " " " " "


Quelle est la solution pour parvenir à ce résultat ?

Merci

4 réponses

Avatar
Eric
Bonjour Véronique,

Très difficile de voir de loin.
Je viens de créer une catégorie de recettes soit TOTO
Une description de la recette dans Intitulé... soit Tata
Un enregistrement dans la table Détail menu TP pour cette recette (tata)
et enfin un enregistrement dans Dates TP sans mettre de date.
Tout ça dans la base que tu avais posté sur cjoint le 21/03 qui
utilisait une requête avec des jointures externes (Left & Right).

En supprimant le critère Est Pas Null dans la requête Recettes date TP
par classe sur le champ [Date TP] afin d'afficher les recettes pour
lesquelles il n'y a pas de date de TP et en modifiant la fonction comme
suit :
strResult = Nz(.Fields(strConcat)) au lieu de
strResult = .Fields(strConcat)
je n'ai pas d'erreur.
J'obtiens pour la recette Tata une ligne sans donnée dans les colonnes
des classes. Essaies de faire de même.

Si le problème persiste, il faudrait poster une nouvelle bd au format
2000 sur cjoint avec quelques enregistrements spécifiques à ton cas.


Bonjour à tous,

Je reviens sur le fil Req analyse croisée qui a débuté le 16.03.06 et
solutionné par la fonction ConcatForQuery2 et je rencontre maintenant un
nouveau problème, voici le message d’erreur à l’exécution de la requête :

« Type de données incompatible dans l’expression du critère »

Je suppose que c’est pour la raison suivante :
La source de la req analyse croisée est une requête sélection comportant les
opérations LEFT et RIGHT JOIN, il y a donc certains enregistrements en entête
de ligne sans aucune valeur mais qui doivent cependant apparaître dans le
résultat final (recettes sans aucune dateTP) comme ceci :


Recette classe1 classe 2 classe 3 etc

Crudités 12.09.06 08.10.06
10.12.06

Lasagnes 12.09.06 06.01.07

Tiramisu 12.09.06

Bavarois " " " " " "


Quelle est la solution pour parvenir à ce résultat ?

Merci



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Véronique DEFRAIN
Bonjour Eric,

En fait le problème se pose quand il n’y a pas d’enregistrement dans la
table Détail menu TP.
En effet, dans une année scolaire toute les recettes de la table « Intitulé
des recettes aux menus » ne sont pas exploitées en cours de TP.

Cependant, pour aider à l’élaboration des menus TP d’une année scolaire, il
est nécessaire d’avoir une vision claire des recettes déjà utilisées avec
identification des classes et dates concernées mais aussi des recettes non
utilisées afin de modifier les menus pour les diversifier et permettre aux
apprentis d’étudier un maximum de techniques culinaires.

Comme vous pourrez le constater la req source comportent 734
enregistrements, soit :

638 recettes non utilisées dans la table détail
+ 68 recettes différentes utilisées dans la table détail
Total : 706 recettes correspondant au nombre de recettes contenues dans la
table « Intitulé … »

Et si on utilise Est Pas Null comme critère dans le champ DATE TP on
obtient 68 enregistrements tandis que si ce critère n’est pas utilisé, on ne
peut exécuter la requête analyse croisée.

De plus, si la requête analyse croisée ne comporte pas la fonction de
concaténation on obtient 706 enregistrements à son exécution.

Ci-dessous le lien vers Recettes2000 :
http://cjoint.com/?dykadqvh6M


J’espère que mon explication est suffisamment claire et vous remercie de
votre aide.
A bientôt



Bonjour Véronique,

Très difficile de voir de loin.
Je viens de créer une catégorie de recettes soit TOTO
Une description de la recette dans Intitulé... soit Tata
Un enregistrement dans la table Détail menu TP pour cette recette (tata)
et enfin un enregistrement dans Dates TP sans mettre de date.
Tout ça dans la base que tu avais posté sur cjoint le 21/03 qui
utilisait une requête avec des jointures externes (Left & Right).

En supprimant le critère Est Pas Null dans la requête Recettes date TP
par classe sur le champ [Date TP] afin d'afficher les recettes pour
lesquelles il n'y a pas de date de TP et en modifiant la fonction comme
suit :
strResult = Nz(.Fields(strConcat)) au lieu de
strResult = .Fields(strConcat)
je n'ai pas d'erreur.
J'obtiens pour la recette Tata une ligne sans donnée dans les colonnes
des classes. Essaies de faire de même.

Si le problème persiste, il faudrait poster une nouvelle bd au format
2000 sur cjoint avec quelques enregistrements spécifiques à ton cas.


Bonjour à tous,

Je reviens sur le fil Req analyse croisée qui a débuté le 16.03.06 et
solutionné par la fonction ConcatForQuery2 et je rencontre maintenant un
nouveau problème, voici le message d’erreur à l’exécution de la requête :

« Type de données incompatible dans l’expression du critère »

Je suppose que c’est pour la raison suivante :
La source de la req analyse croisée est une requête sélection comportant les
opérations LEFT et RIGHT JOIN, il y a donc certains enregistrements en entête
de ligne sans aucune valeur mais qui doivent cependant apparaître dans le
résultat final (recettes sans aucune dateTP) comme ceci :


Recette classe1 classe 2 classe 3 etc

Crudités 12.09.06 08.10.06
10.12.06

Lasagnes 12.09.06 06.01.07

Tiramisu 12.09.06

Bavarois " " " " " "


Quelle est la solution pour parvenir à ce résultat ?

Merci



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Bonjour Véronique,

L'erreur vient du fait que la requête sur laquelle est fondée cette
requête AC retourne un ou plusieurs champs [Apprentis 1] Null, champ
dont la légende est groupe cuisine. (Pas évident à trouver quand on est
pas du domaine ou dans l'application. ;-) )

Donc en mettant :
Premier(ConcatForQuery2("NOM RECETTE";[NOM RECETTE];"DATE TP";"Recettes
date TP par classe";"APPRENTIS 1";nz([APPRENTIS 1]);Car(13)+Car(10)))
on récupère bien les 706 enregistrements.
Pour le 406ème enregistrement : recette de catégorie 7, on obtient donc
plusieurs dates pour une même recette et même classe, dates affichées
dans la même cellule.

J'espère que cette fois-ci, c'est la bonne. ;-)

Ps: j'ai remis
strResult = .Fields(strConcat)
dans la fonction, donc pensez à la récupérer, bien que cela ne devrait
pas interférer.

Le lien : http://cjoint.com/?dyrLHFA8lZ

Bonjour Eric,

En fait le problème se pose quand il n’y a pas d’enregistrement dans la
table Détail menu TP.
(...)

J’espère que mon explication est suffisamment claire et vous remercie de
votre aide.
A bientôt





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Véronique DEFRAIN
Bonjour Eric,

Je viens de faire la modification nécessaire et le résultat est parfait;

J'espère aussi que je ne vais pas découvrir d'autres problèmes au fur et à
mesure du développement de la base.

Quoiqu'il en soit, pour l'instant c'est un succès et j'en suis ravie.

De nouveau un grand merci.
A bientôt





Bonjour Véronique,

L'erreur vient du fait que la requête sur laquelle est fondée cette
requête AC retourne un ou plusieurs champs [Apprentis 1] Null, champ
dont la légende est groupe cuisine. (Pas évident à trouver quand on est
pas du domaine ou dans l'application. ;-) )