OpenOffice Base : LES RELATIONS (b)

6-Supprimer une relation

Il existe quelques raisons pour retirer une relation entre des tables ou des requêtes.

La première est que vous avez commis une erreur au moment de la création de la relation. Vous avez accidentellement choisi le mauvais champ au moment de la création de la relation. Ou, après une analyse plus approfondie, vous changez les relations entre les tables.

Pour vous permettre de modifier la structure d'une table reliée, il peut être nécessaire auparavant de retirer une relation. OpenOffice Base vous le précisera si c'est le cas.

  1. Cliquez avec le bouton droit de la souris sur la ligne qui relie les deux tables.
  2. Du menu contextuel, sélectionnez la commande Supprimer.
OU
  1. Appuyez sur la touche touche SUPPR du clavier.

7-Modifier les options d'une relation

  1. Double-cliquez sur la ligne qui relie les deux tables.
OU
  1. Cliquez avec le bouton droit de la souris sur la ligne qui relie les deux tables.
  2. Du menu contextuel, sélectionnez la commande Éditer....

Il est maintenant temps de créer les relations entre les tables. Voici un cas particulier qui pourrait bien vous arriver au moment de la création de relations entre les tables de votre base de données.

Création d'une relation entre les tables Facture et Employés.

Il faut premièrement déterminer de quel type de relation il s'agit ou sa cardinalité.

  1. Une facture est générée par un seul vendeur.
  2. Un vendeur peut générer plusieurs factures.

Il s'agit d'une relation de type un à plusieurs.

Il faut maintenant créer la relation entre les tables Employe et Facture sur leur champ en commun.

  1. Sélectionnez le champ Numero_Poste de la table Employe.
  2. À l'aide la souris, faites-le glisser sur le champ ID_Vendeur de la table Factures.

Le message suivant apparaitra :

fenêtre erreur d'intégrité

7.1-Que faire lorsqu'OpenOffice Base refuse de créer une relation

Comme mentionné ci-dessus, la relation entre les tables Factures et Employe ne fonctionnera pas. Le contenu de certains enregistrement sur le champ en commun (ID_Vendeur et Numero_Poste) ne respectent pas les règles d'intégrité. OpenOffice Base vous affichera donc le message d'erreur ci-dessus.

Il faut attentivement lire le message pour comprendre ce qui arrive. Dans notre cas, c'est la phrase «Integrity constraint violation - no parent 7, table : Factures in statement» qui explique la situation : « La donnée 7 du champ ID_Vendeur de la table Factures ne respectent pas les règles d'intégrité référentielle ». Il fait référence à un numéro de poste inexistant dans la table Employe.

Et en y regardant de plus près on se rend compte que les derniers enregistrements dans le champ ID_Vendeur de la table Factures n'ont pas de contenu valide dans le champ correspondant de la table Employe. C'est pour cette raison qu'OpenOffice Base refuse de créer une relation permanente entre ces deux tables.

Pour cet exemple, vous connaissez la cause du problème. Il suffit de saisir des valeurs appropriés pour ces enregistrements pour régler le problème.

  1. Refaite la relation entre les tables Employe et Facture sur leur champ en commun (Numero_Poste et ID_Vendeur).

Les deux tables sont maintenant reliées sur un champ en commun.

  1. Créez maintenant les relations entre les tables de cette base de données telles que sur l'image ci-dessous.
relations entre toutes les tables

8-Les relations de plusieurs à plusieurs

OpenOffice Base vous permet de créer facilement des relations de type un à un et de un à plusieurs.

Cependant, la création de relations de type plusieurs à plusieurs nécessitent plus de travail.

Prenons l'exemple de la création d'une relation entre les tables Factures et Produits. Avant tout, il faut déterminer de quel type de relation il s'agit.

Il est impossible de faire directement une relation de type plusieurs à plusieurs. Il faut créer une table intermédiaire qui contient la clé primaire des deux tables.

Il faut ensuite créer deux relations de type un à plusieurs entre les tables Factures, Produits et la table intermédiaire en utilisant le champ de la clé primaire des deux tables.

N'oubliez pas d'activer l'option de mise à jour en cascade.

Pour qu'une relation fonctionne, vous devez avoir le même type d'informations dans les deux tables reliées.

L'option "Mise à jour en cascade" s'assure que l'information se retrouve aussi dans l'autre table. Il vous est donc inutile de vous préoccuper d'avoir l'information dans les deux tables. OpenOffice Base s'en occupe pour vous.

8.1-Sortir de l'écran des relations

Si vous voulez conserver les relations entre les tables, vous devez premièrement les sauvegarder avant de quitter le mode de relations.

  1. Cliquez sur le bouton bouton enregistrer.
  2. Du menu Fichier, sélectionnez l'option Fermer.

9-Création d'une facture

C'est ici que toutes les relations entre les tables seront mises en avantage. Le prochain exercice consiste à la création d'une requête qui contient toutes les tables reliées.

  1. Cliquez sur l'onglet des requêtes bouton requêtes.
  2. Cliquez sur le bouton Utiliser l'assistant de création de requête... bouton assistant requête.
  3. De la liste des champs possibles, sélectionnez dans l'ordre les champs suivants :

ID_Facture (Transition_Fact-Stock), ID_Client (Factures), ID_Vendeur (Factures), ID_Produit (Transition_Fact-Stock), Quantité (Transition_Fact-Stock), Prix_Unitaire (Stock).

  1. Suivez la étapes de la procédure en cliquant sur le bouton bouton SUIVANT jusqu'au bout de l'assistant

Vérifiez que les liaisons existent bien entre les tables de la requête. Sinon vous obtiendrez 63 enregistrements !

Vous devriez obtenir le résultat suivant :

résultat de la première requête