Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 17h43   #1
Invité régulier
 
Homme Olivier
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 7
Points : 7
Par défaut Problème requête et relations

Bonjour à tous,
Je suis un nouveau venu sur Access (en fait je débute) et j’ai commencé une base pour recenser toute la collection de dvd de mes parents.
Pour cela j’ai créé 4 tables (Films, Acteurs, Genres et Réalisateurs).
Détail simplifié des tables (clé primaire en gras) :
Acteur : NumActeur(NuméroAuto), NomActeur(Texte)
Genres : NumGenre(NuméroAuto), NomGenre (Texte)
Réalisateurs : NumRéalisateur(NuméroAuto), NomRéalisateur(Texte)
Films : NumFilm(NuméroAuto), Titre(Texte), Genre(Listechoix sur table Genre), Réalisateur(Listechoix sur table Réalisateur), Acteur1(Listechoix sur table Acteur), Acteur2(Listechoix sur table Acteur), Acteur3 à Acteur10(identique)
Dans la fenêtre relations, j’ai privilégié l’intégrité référentielle et les relations 1 à plusieurs.
La saisie des films dans le formulaire se déroule correctement.
La requête Films par réalisateur est OK et l’affichage dans un formulaire est OK suivant le réalisateur choisi dans une liste.
La requête Films par genre est OK et l’affichage dans un formulaire est OK suivant le genre choisi dans une liste.
Mon problème est le suivant : La requête Films par acteur ne fonctionne pas où plutôt je ne sais comment la faire.
Dans les relations, chaque champ Acteur1 à Acteur10 de la table Film est relié à une table Acteur différente (Access m’a créé 10 tables c’est sans doute normal mais je n’ai pas compris).
Pourriez-vous m’aider pour le schéma de la requête ou en sql mais je commence.
J’ai essayé de détailler le plus possible.
Merci à tous pour votre aide.
oliver29900 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 18h26   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Oliver29900,

Tout d'abord, bravo pour la présentation de ta problématique qui donne envie de t'aider.

Ensuite, deux points :
Citation:
Envoyé par Oliver29900
Access m’a créé 10 tables c’est sans doute normal mais je n’ai pas compris
==> En fait, non : il s'agit d'une seule et même table que Access duplique (graphiquement) en suffixant son nom d'un n° de séquence.
Ce souci provient d'un problème de conception lié au fait que tu as créé dix champs "Acteur".


Deux aspects :
  1. le jour où tu veux saisir un 11ème acteur, tu es obligé d'ajouter un champ à ta table Film ;
  2. statistiquement, la liste des acteurs d'un film tournera, peut-être, autour de 4 ou 5 acteurs connus et, de ce fait, tu auras beaucoup de champs vides qui prendront, malgré tout, de la place disque.
Tu as donc plutôt intérêt à t'orienter vers une relation n---n entre Film et Acteur, donc avec la table intermédiaire suivante (table supplémentaire) :

Film_Acteur
- NumFilm (clé primaire)
- NumActeur (clé primaire)
...

Relation
Film 1---∞ Film_Acteur, via NumFilm ;
Acteur 1---∞ Film_Acteur, via NumActeur.

Tu pourras, alors, supprimer tes 10 champs de la tables Film, et le nombre d'acteur pour un film sera variable de 0 à ∞.

Voilà, en ce qui concerne la modélisation. Je ne connais pas VBA, et ne pourrai donc pas t'aider sur cette partie.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h02.


 
 
 
 
Partenaires

Hébergement Web