Toute l'actualité de [self-access.com] en direct sur votre ordinateur !  Vous êtes ici : Accueil » Access » Notions de base » Tables » RelationsConnexion
 


Les relations

Un projet complexe nécessite souvent plusieurs tables dans Access. Par exemple, une table Clients, une table Factures...

Il existe probablement des relations entre ces tables, exprimées de la façon suivante :

  • "Un client reçoit plusieurs factures"
  • "Une ville regroupe plusieurs clients"
  • "Une facture comporte plusieurs échéances"

Dans Access, cette relation sera matérialisée de la façon ci-contre :

Notes :

  • Pour qu'une relation lie deux tables, il faut qu'un champ soit commun aux deux tables.
  • Par exemple, dans le cas d'une relation Clients/Factures, c'est le numéro du client qui figurera à la fois sur la table Clients et sur la table Factures. D'une manière générale, c'est la clef primaire du côté "1" qui sera reprise dans la table du côte "Plusieurs".

Le symbole  (symbole de l'infini en mathématiques) se prononçant "plusieurs".

Vers le haut

Mettre en place une relation

  1. Créez chaque table dans Access.
  2. Définissez une clef primaire pour chaque table.
  3. Repérez la table se trouvant "du côté 1", et copiez sa clef primaire dans la table "du côté Plusieurs" (le champ copié n'étant plus une clef primaire dans la seconde table).

Notes :

Pour qu'un champ serve de base à la relation, il doit suivre les règles suivantes :

  • Le champ de liaison doit figurer dans chacune des 2 tables
  • Dans la table "1", le champ doit être défini comme clef primaire
  • Dans la table "Plusieurs", le champ n'est pas clef primaire. On l'appelle clef étrangère.
  • Dans chacune des 2 tables, le champ doit avoir le même type de données, et la même taille (ex. : si le numéro de client de la table Clients est de type Texte / 10 caractères, il doit être identique dans la table Factures).
  • Par contre, le champ de liaison peut avoir un nom différent dans chaque table.

Cas particulier :

Si dans une table, la clef primaire est un NuméroAuto (Compteur dans Access 2), le champ équivalent dans la table "Plusieurs" doit être de type "Numérique / Entier long".

Vers le haut

Définir une relation

  1. Une fois que les tables ont été créées et un champ commun défini (cf. ci-dessus), cliquez sur le menu Outils / Relations ou Edition / Relations dans Access 2).
  2. Une première boîte apparaît (ci-contre). Cliquez sur chaque table listée, puis sur le bouton Afficher (les tables se rangent dans la fenêtre, derrière la boîte de dialogue).
  3. Lorsque toutes vos tables sont sélectionnées, cliquez sur le bouton Fermer.
  4. A la souris, trainez la clef primaire de la table "1" (ex. : Numéro Client de la table Clients, figurant en gras à l'écran) sur le champ correspondant dans la table "Plusieurs" (ex. : Numéro Client de la table Factures).
    En fait, sur les versions récentes d'Access, glissez l'un des 2 champs (pas forcément la clef primaire) sur son équivalent dans l'autre table. Peu importe le sens !
  1. Une nouvelle boîte apparaît :
    Dans cette boîte, cochez la case Appliquer l'intégrité référentielle, et éventuellement les cases Mettre à jour en cascade et Supprimer en cascade (pour plus de détails, consultez la fiche Intégrité référentielle)

  2. Cliquez ensuite sur le bouton OK. Un trait avec les symboles 1 et  relie désormais les tables.

    Vers le haut

    Modifier une relation

    Pour modifier les caractéristiques d'une relation, double-cliquez sur le trait qui relie les tables, et modifiez les réglages d'intégrité référentielle.

    Supprimer une relation

    1. Cliquez sur le trait qui relie les tables
    2. Appuyez sur la touche [SUPPR] du clavier
    3. Cliquez sur le bouton OK pour confirmer.

    Attention
    Si vous supprimez une relation, vous risquez bien sûr d'avoir des incohérences dans votre base de données (des factures sans clients par exemple).

    Vers le haut


    Mes livres sur Access...
    [cliquez pour plus d'infos]





    Hit-Parade 
     
    [ Copyright 1997-2018 hervé inisan, self-access.com Reproduction interdite ]