Requête sur plusieurs colonnes d'une même table ACCESS 2016
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Requête sur plusieurs colonnes d'une même table ACCESS 2016



  1. #1
    fcheva

    Requête sur plusieurs colonnes d'une même table ACCESS 2016


    ------

    Bonjour,

    Je sollicite votre aide car je bloque sur la réalisation d'une requête avec ma base de données access 2016.

    Voici mon soucis :

    J'ai une table "ECOLE" avec les éléments suivants :

    NOM Affectation1 du1 au1 Affectation2 du2 au2 Affectation3 du3 au3
    BERNARD Ecole 1 JJ/MM/AAAA JJ/MM/AAAA Ecole 2 JJ/MM/AAAA JJ/MM/AAAA Ecole 3 JJ/MM/AAAA J/MM/AAAA
    DUPOND Ecole 1 JJ/MM/AAAA JJ/MM/AAAA Ecole 2 janvier 2000 ? Ecole 3 2008 2009
    DURAND Ecole 2 JJ/MM/AAAA JJ/MM/AAAA Ecole 3 Ecole 1 septembre 1999 fin 2000

    J'aimerai avoir une requête qui me permette d'obtenir le résultat suivant :

    Requête "Ecole 1"

    NOM Du Au
    BERNARD JJ/MM/AAAA JJ/MM/AAAA
    DUPOND JJ/MM/AAAA JJ/MM/AAAA
    DURAND septembre 1999 fin 2000

    Je n'arrive à rien. Quelqu’un peut'il m'aider ?

    Bien amicalement

    Franck

    -----

  2. #2
    Ikhar84
    Animateur Informatique

    Re : Requête sur plusieurs colonnes d'une même table ACCESS 2016

    Bonsoir,
    Il faudrait déjà clarifier les tables un minimum, vous avez réfléchi un peu à la conception de votre base de données ou simplement crée un seule table ?
    Personnellement je vois au moins 3 tables:
    - une table "Ecoles"
    - une table "Professeurs" (ou Instituteurs, Employes... un nom significatif en tout cas...)
    - et enfin un table "Affectations" qui fait le lien entre Ecoles et Professeurs, et qui aurait les attibuts "du" et "au"...
    Les professeurs pourront ainsi avoir de 0 à n affectations... et ne seront pas limités à 3 affectations comme dans votre exemple...
    Vous pourrez ainsi faire des jointures de tables pour récuperer ("requeter" vos tables) vos données...

    Voulez vous de l'aide pour l'étape de la conception ?
    La construction des requêtes (sql ou via le concepteur) en sera grandement simplifiée !
    Et votre base sera au normes (accessoirement).

  3. #3
    fcheva

    Re : Requête sur plusieurs colonnes d'une même table ACCESS 2016

    Bonjour,

    Un grand merci pour votre proposition d'aide que j'accepte avec grand plaisir car je suis franchement novice dans les bases de données.

    Ma base de données possède déjà plusieurs tables dont 2 correspondent à peut près à ce que vous décrivez :

    - une table "Etat-Civil" avec entre autre une colonne "NOM" et une colonne "Prénoms"
    Table 1.JPG

    - une table "Armée allemande" avec entre autre une colonne 'NOMHEER" qui reprend les noms et prénoms rentrés initialement dans la table "Etat-Civil", puis des colonnes "Affectations 1", "Fonction 1", Du 1", "Au 1". Cette série de colonnes se répètent 10 fois mais peut être étendue à plus si besoin.
    Table 2.JPG

    Il s'agit d'une base de données historique qui recense les membres d'une division allemande pendant la 2e guerre mondiale entre 1941 et 1945 (j'ai presque 1000 personnes aujourd'hui et à terme, j'en aurais au bas mot 2000 après le dépouillement des archives). Certains membres de cette division ont fait leurs formations dans différentes écoles et l'idée est d'avoir une requête qui réalise un listing des stagiaires pour une école donnée avec la représentation suivante "NOM", "Prénoms", "Fonction", Du", "Au". Mon problème est qu'il n'est pas possible en l'état d'avoir pour les écoles un seul bloc "Affectations 1", "Fonction 1", Du 1", "Au 1" de ma table de sorte que ces blocs écoles sont disséminées dans toute la table.

    A vous lire, je crois comprendre qu'il me faudrait réaliser une table par école avec des colonnes "Fonction", Du", "Au" ? Est-ce bien cela ?

    NB : Pour la colonne "Fonction", j'ai réalisé un menu déroulant avec le choix entre "Stagiaire" et "Instructeur" en sachant qu'un "Stagiaire" pouvait très bien revenir plus tard à cette même école comme "Instructeur".

    Bien amicalement

    Franck

  4. #4
    Ikhar84
    Animateur Informatique

    Re : Requête sur plusieurs colonnes d'une même table ACCESS 2016

    Citation Envoyé par fcheva Voir le message
    Bonjour,

    - une table "Armée allemande" avec entre autre une colonne 'NOMHEER" qui reprend les noms et prénoms rentrés initialement dans la table "Etat-Civil", puis des colonnes "Affectations 1", "Fonction 1", Du 1", "Au 1". Cette série de colonnes se répètent 10 fois mais peut être étendue à plus si besoin.
    Pièce jointe 331268

    Il s'agit d'une base de données historique qui recense les membres d'une division allemande pendant la 2e guerre mondiale entre 1941 et 1945 (j'ai presque 1000 personnes aujourd'hui et à terme, j'en aurais au bas mot 2000 après le dépouillement des archives). Certains membres de cette division ont fait leurs formations dans différentes écoles et l'idée est d'avoir une requête qui réalise un listing des stagiaires pour une école donnée avec la représentation suivante "NOM", "Prénoms", "Fonction", Du", "Au". Mon problème est qu'il n'est pas possible en l'état d'avoir pour les écoles un seul bloc "Affectations 1", "Fonction 1", Du 1", "Au 1" de ma table de sorte que ces blocs écoles sont disséminées dans toute la table.

    A vous lire, je crois comprendre qu'il me faudrait réaliser une table par école avec des colonnes "Fonction", Du", "Au" ? Est-ce bien cela ?

    NB : Pour la colonne "Fonction", j'ai réalisé un menu déroulant avec le choix entre "Stagiaire" et "Instructeur" en sachant qu'un "Stagiaire" pouvait très bien revenir plus tard à cette même école comme "Instructeur".

    Bien amicalement

    Franck
    Bonsoir, il faut commencer par identifier les "entités" de la base de données, dans une première étapr, sans chercher à préciser les "composants" de ces entités, mais plutôt les relations entre les entité...

    Il y a une grande confusion dans le modèle de données, je pense, ainsi que dans la compréhension de ce qu'est une base de données.

    Par exemple, vous parlez de la table Ecoles.
    La table Ecole regroupe toutes les données regroupant une école en particulier, et seulement les données d'une entité Ecole particulière.
    La périodr d'affectation, le nom ou le prénom d'une personne n'ont rien à y faire.
    L'entité Ecole représente la table école. Ce n'est pas une école en particuliee, et certaines données seront obligatoires ou facultative selon le cas.
    Ce qui représente une école en particulier, c'est une (des) ligne(s) de cette table. On parle alors d'occurence.
    Pour résumer, les colonnes sont les attribut de l'entité Ecole, chacune des lignes, une école en particulier.
    Exemple rapide de table Ecoles:
    Ecoles (Id, Nom, Adresse...)
    Suis-bien clair ?
    Une autre entité regroupe les données permettabt de caracteriser une personne representera une table Personnes, cette table est pourrait on dire thématique et ne devrait pas comporter de données appartenant à une école, un navire ou ce que l'on veut.
    Mais uniquement les données qui caractérise une Personne:
    Exemple rapide:
    Personne(Id, Nom, Prenom, DateNaissance, grade...).

    Enfin, une relation existant entre l'entité Ecole et l'entité Personne, on peut nommer cette relation Affectation.

    Ce lien peut prendre deux formes selon nos besoins:
    1. Une seul affectation d'une personne est possible (à vie si l'on peut dire), ou une seule affectation à un instant T, sans possibilité d'historique:
    L'affectation est matérialisée par une colonne dans la table Personne qui pointe vers une des lignes de la table Ecoles. Il s'agit en géneral d'un identifiant numérique qui reprend l'identifiant de la ligne voulue de la table Personne. On parle de clé étrangère. Étant donné que l'identifiant de la table originale est dit clé primaire... (le Id dans l'exemple).

    2. Le cas qui bous interresse: plusieurs affectations sint possibles en simultannée ou au cours du temps, avec un historique possible, ou plusieurs fonctions sont possible au cours d'une affectation.
    Cette relation est dite 0-N (ou 1-N):
    Pour une personne données on aura 0 à N affectation (ou 1 à N) possible vers 0, une ou plusieurs lignes de la table Ecole.
    Ce lien prend la forme d'une nouvelle table, qui sert à lié les deux tables précedentes, tout en laissant la possibilité d'ajouter des colonnes (caractéristiques, attribut).
    Exemple rapide:
    Affectation(IdEcole, IdPersonne, DebutAffectation, FinAffectation, Fonction)
    Ou
    Affectation(Id, IdEcole, IdPersonne, DebutAffectation, FinAffectation, Fonction)
    (Selon que l'on utilise une clé composée ou distincte.

    Pour résumer:
    1. Identifier vos entités ("acteurs" qui vont intervenir): un EtatCivil n'est pas une entité, mais la composante d'une entité: Personne, Militaire...
    2. Mettez en relation ces entités et trouver comment elles se lient:
    Une personne est liée à une école par un lien d'affectation.

    3. Identifiez la nature de ce lien (simple ou multiple, je ne trouve pas d'autres mot pour simplifier désolé...):
    Une école ne posséde qu'un seul et unique directeur, mais une personne peut avoir plusieurs affectation...
    (Je ne trouve pas d'exemple plus clair ici aussi...).

    4.Caractérisez chacune des entités: quelles sont les données de telle entité que vous souhaitez stocker (les colonnes de la table), comment differencier chaque occurence d'une entité (les lignes de la table).
    Ici vous ne devrez garder que les données directement liées à l'entité !
    Comme dit plus haut, pas de place pour une colonne "débutAffectation" ou une colonne "NomMilitaite" dans une entité Ecole.

    Petite note: j'utilise le singulier pour nommer les entités, et le plurielle pour les tables, c'est une convention personnelle (et souvent utilisée) pour marquer la différence entre le concept d'une Ecole et la table Ecoles (qui sera donc une sorte de liste de toutes les écoles).
    J'ai essayé d'être le plus simple mais clair possible, je suis désolé si des erreurd ou fautes se sont glisséed, posté via l'appli mobile

  5. A voir en vidéo sur Futura
  6. #5
    Ikhar84
    Animateur Informatique

    Re : Requête sur plusieurs colonnes d'une même table ACCESS 2016

    Ah oui:
    Une même donnée ne doit exister (sauf cas de force majeur, dénormalisation par exemple) qu' un seul et unique exemplaire !
    Hors de question de retrouver le nom et le prénom d'une seule et même personne disséminé à plusieurs endroits de la base de données comme j'ai compris sur le précedent post !
    Imaginez les risques d'erreur si cette données n'était modifié que dand un seul endroit par exemple...
    Sans compter que cela dénote très clairement un manque de réflexion flagrant lors de la conception...

Discussions similaires

  1. requete access date
    Par aminaa dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 03/09/2013, 13h32
  2. Trier sur plusieurs colonnes
    Par invited87586dc dans le forum Logiciel - Software - Open Source
    Réponses: 21
    Dernier message: 29/03/2013, 11h18
  3. Access, requete sur plusieurs tables... besoin d'un coup de main
    Par invite05a67b21 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 09/07/2011, 17h08
  4. Requete Access 2007
    Par invite05a67b21 dans le forum Programmation et langages, Algorithmique
    Réponses: 23
    Dernier message: 07/07/2011, 08h36
  5. Requête sous ACCESS 2003
    Par julau dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/06/2010, 13h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.