IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

relations dans les tables empechent la saisie des données. [AC-2000]


Sujet :

Modélisation

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut relations dans les tables empechent la saisie des données.
    Bonjour,

    je réalise une base de données à l'aide du logiciel Access. elle gère le matériel informatique (ordinateur, imprimante et écran) que utilisent les étudiants.

    Je suis donc parti sur ce principe:



    un étudiant utilise Matériel_info 1,N:

    - (1) un étudiant utilise au moins un Matériel_info
    - (N) un étudiant peut utiliser plusieurs Matériel_info


    Problème: les relations dans les tables empêchent la saisie des données.



    Quelqu'un pour m'apporter de l'aide ?

    ci-joint la base de données

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne vois pas le problème, car j'ai réussi à affecter du matériel à un étudiant.

    Il faut bien sûr que toutes les tables du coté 1 soient remplies pour remplir la table du coté plusieurs.

    Philippe

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    ça marche seulement si on affecte à chaque fois les trois matériel à un étudiant.

    mais ce que moi j'aimerais avoir est ceci,

    exemple:

    - un étudiant peut utilise actuellement seulement une imprimante dans ce on doit affecter seulement et seulement un matériel à l' étudiant soit l'imprimante .

    ou

    - un etudiant peut utilise actuellement un écran et un ordinateur dans ce on doit affecter seulement deux matériel à l' étudiant. soit l'écran et l'ordinateur.

    avec ma relation ces deux cas d'exemple ne sont pas possible. Justement toutes les tables du coté 1 ne doivent pas être remplies. C'est mon problème.


    comment corriger mes relations afin que çà soit possible?
    merci

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Kesamba et Philippe,

    Je me permets de m'immiscer, Philippe...

    Kesamba, tu as défini 4 entités : Etudiant, Imprimante, Ecran et Ordinateur (laisse tomber, pour l'instant, la table associative Materiel-Info), mais tes règles de gestion ne sont pas très claires.
    Peux-tu, dans les phrases suivantes, remplacer "_" par "1" ou "n", éventuellement en précisant le paramètre " à une date donnée" ?
    • 1 étudiant peut utiliser _ imprimante(s) ;
    • 1 imprimante peut être utilisée par _ étudiant(s) ;
    • 1 étudiant peut utiliser _ écran(s) ;
    • 1 écran peut être utilisé par _ étudiant(s) ;
    • 1 étudiant peut utiliser _ ordinateur(s) ;
    • 1 ordinateur peut être utilisé par _ étudiant(s).
    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 !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    Merci Richard_35 pour ton intervention


    1 étudiant peut utiliser n imprimante(s) ou pas du tout d'imprimante;
    1 imprimante peut être utilisée par n étudiant(s) ou par aucun d'eux;
    1 étudiant peut utiliser n écran(s) ou pas du tout d'écran;
    1 écran peut être utilisé par n étudiant(s) ou par aucun d'eux;
    1 étudiant peut utiliser n ordinateur(s) ou pas du tout d'ordinateur;
    1 ordinateur peut être utilisé par n étudiant(s) ou par aucun d'eux.

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    En termes "merisien" tu obtiens donc le MCD suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Etudiant -0,n---[utiliser]---0,n- Imprimante
       |
       +------0,n---[utiliser]---0,n- Ecran
       |
       +------0,n---[utiliser]---0,n- Ordinateur
    Les relation n,n se concrétisent par des tables dites "associatives" : à ce propos, je te suggère de consulter cet excellent billet de CinePhil.
    Les tables résultantes doivent donc être (souligné=clé primaire, #=clé étrangère) :
    Etudiant(IdEtudiant, Nom, ...) ;
    Imprimante(IdImprimante, Nom, ...) ;
    Ecran(IdEcran, Nom, ...) ;
    Ordinateur(IdOrdinateur, Nom, ...) ;
    Etudiant_Imprimante(#IdEtudiant, #IdImprimante, ...) ;
    Etudiant_Ecran(#IdEtudiant, #IdEcran, ...) ;
    Etudiant_Ordinateur(#IdEtudiant, #IdOrdinateur, ...).
    Je te laisse simplifier les relations sous Access : elles sont relativement évidentes.

    Pour résumer, tu avais bien senti le besoin de table associative, mais ton erreur initiale était de ne prévoir qu'une seule table associative "globale".
    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 !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par Richard_35 Voir le message
    Je me permets de m'immiscer, Philippe...
    Tu as bien fait, et je suis d'accord avec ton modèle.

    Philippe

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    Merci Richard_35 pour votre aide. Avec ton schéma je peux affecter du matériel à un étudiant dans la table.
    Je n'arrive pas à le faire dans un formulaire.

    Mon idée est de créer un formulaire principal(gestion) et sous formulaire(gestionSF qui a pour source une requête basée sur deux tables: la table Étudiant et la table Materiel-Info ).

    Dans le formulaire gestion j'ai un(e) comboBox qui me liste tous les étudiants

    et le sous formulaire gestionSF affiche le résultat.

    un truc comme ça:

    Étudiant 1 utilise actuellement un moniteur et un ordinateur ainsi de suite.

    pour arriver à ce résultat j'ai crée deux autres formulaires (formulaire principal(Étudiant qui a pour source la table Étudiant ) et sous formulaire(matérielSF qui a pour source la table Materiel-Info ).)

    'Après MAJ' de combobox le formulaire principal(Étudiant) et sous formulaire(matérielSF) s'ouvrent et je peux donc faire les affectations.

    Mon problème c'est que je n'arrive plus à concrétiser cet idée avec les nouvelles tables. Avez vous peut être une idée?

    Sinon votre aide m'a été très précieuse.

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Suggestion :
    un formulaire Etudiant gérant la table Etudiant et trois sous-formulaires intégrés à ce formulaire :
    • table Etudiant_Imprimante (requête liant Etudiant et Etudiant_Imprimante) avec liste déroulante sur la table Imprimante ;
    • table Etudiant_Ecran (requête liant Etudiant et Etudiant_Ecran) avec liste déroulante sur la table Ecran ;
    • table Etudiant_Ordinateur (requête liant Etudiant et Etudiant_Ordinateur) avec liste déroulante sur la table Ordinateur.

    Tu peux, également, remplacer les trois sous-formulaires par trois boutons appelant trois formulaires séparés... les possibilités sont multiples et infinies.

    Je ne connais pas VBA et n'utilise que les assistants (et encore... ), je ne pourrai donc t'aider dans la partie développement pur.

    Si la modélisation te convient, je te suggère de commencer le développement et de reposter, si besoin, dans les partis adéquates (IHM, requêtes, états, etc...).

    Tout en n'oubliant pas d'utiliser le bouton pour cette discussion.
    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 !

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    Merci. Je vais m'y mettre dès ce soir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. relations dans les tables
    Par wakatepe dans le forum Modélisation
    Réponses: 1
    Dernier message: 11/05/2012, 22h21
  2. ajout clé primaire dans les table d'une base de données
    Par khaled1981 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/02/2011, 11h45
  3. Gestion des durées dans les tables Access
    Par climz dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 24/05/2006, 15h29
  4. Gestion des NULL dans les tables externes
    Par plouf2244 dans le forum Firebird
    Réponses: 1
    Dernier message: 23/03/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo