Sous formulaire de requête qui pose problème...

Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je débute tout juste sur Access et je dois réaliser un projet pour mon cours d'informatique.
Le but est de faire une sorte de base de donnée de jeux vidéos par exemple.
J'ai réalisé 3 tables, une pour des types (ex : action, aventure, etc) , une pour les dates de sortie, une pour les jeux (avec leur nom, leur date de sortie, leurs types), sachant qu'on peut attribuer plusieurs types par jeu grâce à la liste déroulante.
Le but de faire toutes mes tables est de pouvoir remplir la base de donnée facilement grâce à des listes déroulantes.
A chaque table, je crée une clé primaire qui s'appelle "Num X" pour attribuer automatiquement un numéro à une donnée.

Maintenant, je souhaiterai faire un formulaire avec une liste déroulante des dates de sorties pour afficher tous les jeux sortis à une année choisie.
J'ai suivi le procédure du cours :
- faire une requête Date de sortie pour liste déroulante (date de sortie prise dans la table Jeux, et pas la table Date de sortie) pour alimenter la liste déroulante.
- faire une formulaire avec la liste déroulante basée sur cette requête.
- faire une requête de sélection qui filtre les jeux pour ne faire apparaître que ceux dont la date de sortie correspond à la valeur saisie dans la liste déroulante
- faire un sous formulaire dans le formulaire avec la liste déroulante, qui affiche la requête précédente.

A la fin, je suis censé avoir un formulaire avec une liste déroulante des années, qui lorsqu'on choisi une année, affiche la liste des jeux sortis cette année.

Voilà les multiples problèmes :
- Le premier problème est que la liste affichée de jeux filtrés renvoie le numéro des types et pas leur noms. Quand je créé le sous formulaire à l'aide de l'assistant comme expliqué dans mon cours, je suis obligé de choisir "Ref type.value"
- Le deuxième problème est que si il y a 2 types différents pour un même jeu, la liste affiche 2 fois le même jeu avec une ligne pour le type A et une ligne pour le type B.

Je comprend pas pourquoi ce problème survient, la requête qui affiche la liste des jeux triées est parfaite, elle affiche tout bien, y a que dans le sous formulaire que tout se plante....


2 réponses

castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
 
https://www.cjoint.com/c/ELlxmGvii7l

Dans ce lien ta base modifiée
Refait un formulaire recherche sur les categories en laissant a mon choix, une categorie par ligne et cela fonctionne.
Dis moi ce que tu en penses
1
Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
C'est pas trop ce que je comptais faire, le but c'est quand même de pouvoir faire une recherche sur une liste à choix multiple. Il faut absolument qu'on puisse faire un tri sur les catégories en conservant plusieurs catégories par manga...
Je viens de créer un nouveau formulaire qui contient une liste à choix multiple des catégories existantes.

En créant une requête "Mangas sélectionnés par catégorie" basée sur la table Manga, ca serait bien pour le champ Ref.Catégorie.Value, de pouvoir ajouter un critère qui signifie "cherche dans le formulaire les choix de la liste qui ont été sélectionnés"
(un peu comme pour la recherche par date, on utilisait le critère [formulaires]![etc...]![DateSélection]

Je suis sur que c'est faisable, et ca qui me frustre, je fais plein de recherche sur le net, et je commence à écrire du code, mais c'est super compliqué...
0
Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai peut etre une idée, mais je sais pas comment la mettre en forme.

Dans mon formulaire sur les catégories, j'ai une liste multichoix simple des catégorie, et un bouton. J'ai mis un code sur le bouton après clic :

Private Sub btnListe_Click()
Dim varI As Variant

If Me.lstCatégories.ItemsSelected.Count = 0 Then
MsgBox "Aucune catégorie n'a été sélectionnée"
Else
For Each varI In Me!lstCatégories.ItemsSelected
MsgBox Me!lstCatégories.ItemData(varI)
Next varI
End If
End Sub

En gros, il me renvoie dans une boite de dialogue les numéros des catégories que j'ai sélectionné.
Est-ce qu'on ne pourrait pas ajouter dans le code un moyen de " copier toutes ces valeurs renvoyée par la boite de dialogue dans le critère Ref.Categorie.Value de la requête Mangas sélectionnés par catégories avec des " OU " entre chaque valeur " et de "mettre à jour la requête"...

Il resterait le problème de la duplication des mangas. Avec cette technique du " OU ", si un manga est catégorisé A,B et C, et que je met un critère "A ou B ou C", je vais voir ce manga 3 fois dans la liste....
Il faudrait alors trouver un moyen de rassembler les critères, ou de supprimer les répétitions
0
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217 > Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
je suis pas un expert en programmation
0
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217 > Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Sous quel access travailles tu?
Moi 2007
Dans la derniere version que je ne connais pas de nouvelles fonctions et possibilités doivent etre offertes.
Je ne comprends pas ton histoire de champs avec value?
Peux tu expliquer?
0
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
 
Bonjour
Si tu veux trier tes jeux par date de sorties, il faut utiliser la table date de sortie et la table jeux. Faire une relation un a plusieurs entre entre les 2 tables.
Ensuite faire une formulaire et sous formulaire avec les 2 tables .
0
Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai réussi à faire le formulaire.

Le problème c'était que le formulaire renvoie la "value" de la table type au lieu du nom.
Jvais avoir pour le jeux A type "36", "78" et "89".... au lieux de "aventure", "action", "plateforme".

Et aussi que pour les listes déroulantes à plusieurs choix possible (comme celle de type), il les renvoie en dupliquant les jeux pour fragmenter la liste.
En gros si j'ai un jeux A qui est action/aventure/plateforme, il va se retrouver 3 fois dans la liste avec action pour l'un, aventure pour l'autre et plateforme pour le dernier.
0
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217 > Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
Si tu mets ta base compressée en zip avec un lien ci-joint. com sur le site je pourai mieux comprendre ton probleme
0
Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   > castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention  
 
J'arrive pas à charger de msg avec le lien ....le message disparait quand je le publie, je vous ai envoyé un mp avec le lien
0
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217 > Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
Dans ci joint tu charges le la base compressée .En bas de la page bouton de creation du lien qui s'affiche en de la page. tu copies ce lien que tu mets dans comment ca marche.
Le lien que tu m'as envoyé je ne peux pas l'ouvrir et le telecharger
0
Bonsweer Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
hier le serveur de ci joint ne voulait pas marcher, je crois avoir réussi à le faire ce matin.
http://www.cjoint.com/c/ELljZILqWt4

Le problème reste le même, à cause de ces données de type numérique, je n'arrive pas à faire afficher les noms des "catégories" ou des "réalisateurs" mais leur Num Auto...
J'aurais souhaité faire plusieurs formulaires de type "recherche par catégorie" ou "recherche par date".

En fait il y a énormément de choses que je souhaitais faire, mais c'est très compliqué de comprendre d'où vient le problème, on peut vite passer des heures sur quelque chose de bête...
0