Access 2010 : tri dans liste de choix

Fermé
le lapin qui pond - 8 avril 2012 à 16:09
 le lapin qui pond - 8 avril 2012 à 23:15
Salut,

je suis en train de réaliser une base de données avec Access 2010, il s'agit d'une liste de films avec surtout des champs textes pour le titre, le réalisateur, etc. Dans la colonne "langue", vu que le choix est limité à 5 ou 6 langues, j'ai opté pour un champ "liste de choix", me permettant de cocher la langue appropriée au lieu de la retaper à chaque fois. Maintenant, je sais qu'il est possible de trier les données des champs texte par ordre alphabétique/alphabétique inverse, mais est-ce que le même genre d'opération est faisable avec des champs liste de choix ? (de manière à pouvoir afficher, par exemple, tous les films en langue anglaise à la suite, puis ceux en français,...)

Merci d'avance pour l'aide!
A voir également:

5 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
8 avril 2012 à 18:11
Bonjour,
ouvrez les propriétés de votre liste et où se trouve la source des données, choisissez "Requête".
Choisissez la table de données, je l'appellerai "Films" et sélectionnez le titre et la langue et les zones de tri :

SELECT Titre, langue FROM Films f INNER JOIN Langues l
ON f.ID_Langue = l.ID_Langue
ORDER BY f.Titre ASC, l.Langue DESC;

Ou, si vous n'avez pas de table "Langues" :

SELECT Titre, langue FROM Films f ORDER BY f.Titre ASC, f.Langue DESC;


Avec cette requête, les données seront triées sur base du titre de manière ascendante et ensuite sur la langue de manière descendante.
Vous aurez compris que les commanes ASC et DESC permettent à une requête de trier soit de A -> Z (ASC) ou de Z -> A (DESC)

;-)
Krilin
« Je suis pas contre les excuses...je suis même prêt à en recevoir. » (Les grandes familles) :-)
0
Bonjour
Il serait possible de le faire a partir d'une liste déroulante issu d'une requete parametrée.
Cette requete lorsqu'elle est sollicitée peut demander la langue.
Il te faut une table de langue avec un seul champ que tu mets en clé primaire avec en relation un a plusieur avec la table films ou il y aura un champ langue.
Dans ta requete pour la liste deroulante comme parametre , tu incris
[Choisissez la langue du film]
0
le lapin qui pond
8 avril 2012 à 18:57
Bonjour et merci pour la réponse!
Donc j'ai essayé votre méthode et ai un peu expérimenté (le "learning by doing" est une méthode efficace pour progresser :-)
Déjà, je précise qu'il faut mettre des crochets (par ex : [langue]), sinon ça marche pas, et ensuite pour la langue il faut lui préciser d'utiliser uniquement la valeur du champ avec un ".value"

Pour info, mon code donne ça:
SELECT f.[Langue audio].Value, f.[Titre original]
FROM [Liste de Films] AS f
ORDER BY f.[Langue audio].Value, f.[Titre original];

Avec ça, ça marche pas mal, sauf que plusieurs lignes séparées sont parfois créées à partir de la même entrée, quand il y a plusieurs langues. Exemple :

Film1 anglais
Film 3 français
Film 2 anglais; français

donne après exécution de la requête

Film1 anglais
Film2 anglais
Film2 français
Film3 français

Peut-on changer cela ?
De plus, peut-on exécuter de manière simple de telles requêtes préprogrammées ? Mon fichier doit en effet servir à d'autres utilisateurs qui devraient pouvoir trier les films selon les critères de leur choix de manière dynamique.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
8 avril 2012 à 21:01
Alors,
première chose, si vous "devez" mettre des crochets, c'est parce que vous avez donné des noms composés à vos champs !
Petit conseil pour l'avenir, ne faites plus jamais cela, cela facilitera vos bases de données pour les requêtes, le développement, ... Ni pour les noms des tables, ni pour les noms des champs
Pour votre problème de redondance des enregistrements, c'est à vous de prendre la décision ! Est-il utile de dupliquer un enregistrement pour juste le différencier par un code langue ???
Est-ce que les utilisateurs à qui ce sera utile, utiliseront-ils ces enregistrements dans la langue qui est la leur par exemple ? Ce qui pourrait peut-être justifier un peu ce choix ... On ne peut pas vous aider sur ce point car vous en êtes le concepteur et seul vous, savez comment et par qui ce sera utilisé.
Moi, je vous donne mon avis, je développe des bases de données depuis très longtemps et je vous conseillerai d'éviter la redondance des enregistrements. Si votre souci est juste de pouvoir indiquer les langues dans lesquelles le film est disponible, faites un sous-formulaire dans lequel l'utilisateur pourra choisir la langue et pourquoi pas indiquer le nom du film dans la langue choisie par l'utilisateur. Vous aurez peut-être une table en plus mais au moins ce sera plus facile à gérer.

Pour votre question de prévoir des requêtes de recherche, je serai vous je ne m'engagerai pas sur ce terrain. Chaque utilisateur recherchera son "type" de film, ses acteurs, ... les critères sont à mon avis trop nombreux pour sauver des requêtes de recherche prédéfinies.
Mais, c'est possible en effet, quoi que je conseillerai d'utilisateur les outils standard de Access plutôt que de programmer une fenêtre de recherche ou de filtre.

Bon travail ! ;-)



0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour tous ces conseils, je vais tenter de les mettre en application !
0