Bonjour à tous et à toutes.
Je souhaiterais tout d'abord savoir s'il est possible de faire des sélections aléatoires imbriquées dans plusieurs champs différents sous ACCESS/SQL ? Je m'explique : je souhaiterais, par exemple, sélectionner dans ma base de données 50 écoles de manière aléatoire. Au sein de chacune de ces 50 écoles je souhaiterais sélectionner encore de manière aléatoire, la note par matière (français et mathématiques) de 3 élèves pour chacun des niveaux suivants : CP, CE2 et CM2.
Donc j'obtiendrai de manière aléatoire, la note par matière de 3 élèves par niveau (prédéterminés à l'avance) de 50 écoles prises aléatoirement.
Voici ma première requête :
Première requête que je nomme, par exemple, "SélectionEcoles". A partir de cette requête, je réitère mon raisonnement précédent avec une seconde requête imbriquée cette fois-ci :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TOP 50 * FROM [EcolesDVP.com] WHERE ((([EcolesDVP.com].[NiveauClasse]) In ("CP","CE2","CM2"))) ORDER BY Rnd([NomEcole]);
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT TOP 3 [SélectionEcoles].[Matière], [SélectionEcoles].[NoteMatière] FROM [SélectionEcoles] GROUP BY [SélectionEcoles].[Matière], [SélectionEcoles].[NoteMatière], [SélectionEcoles].[NomElève] ORDER BY Rnd([NomElève]);
Je me suis heurté à un message d'erreur :Est-ce qu'il n'est pas possible d'utiliser la fonction Rnd() sur des champs texte sous ACCESS ? Même une fois ce problème réglé, je pense que ma démarche n'est pas bonne puisque je pense que le résultat renvoyé sera 2 notes de 3 élèves sur la totalité de mes 50 écoles et ce, tous niveaux confondus, alors que je voudrais avoir 2 notes de 3 élèves par niveau et par école sur 50 écoles soit 2x3x3x50=900 notes d'élèves.Type de données incompatible dans l'expression du critère. (Erreur 3464)
Je ne suis pas sûr que ce je souhaite faire soit vraiment réalisable sous ACCESS, c'est pourquoi ma première question est de savoir si cela est possible sous ACCESS, si oui, est-ce réalisable uniquement en SQL ou dois-je (ou est-ce que c'est plus facile d')également utiliser du code VBA ? Ou est-ce que je ne peux faire tout ceci que sous EXCEL ?
Si cela est réalisable sous ACCESS, quel pourrait-être le bon raisonnement et la bonne syntaxe, s'il-vous-plaît ? J'espère avoir été clair. N'hésitez surtout pas à me demander des précisions.
Je vous remercie d'avance pour le temps que vous consacrerez à mon cas.
Partager