Contraintes

Contraintes de tables et de colonnes

Access permet d'exprimer les contraintes SQL LDD standard :

  • PRIMARY KEY : Sélectionner le ou les attributs concernés puis effectuer un clic droit et sélectionner Clé primaire.

  • NOT NULL : Null interdit = oui dans les propriétés du champs

  • UNIQUE : Indexé = Oui - Sans doublons dans les propriétés du champ ou utiliser la fenêtre Index pour les clés composées de plusieurs attributs

  • CHECK : Valide si dans les propriétés du champs ou de la table (pour une contrainte de table)

Attention

Dans Access le mot "relation" désigne en fait les contraintes d'intégrités référentielles, et non les tables comme c'est le cas dans la terminologie relationnelle. Ceci est un abus de langage.

RappelContrôle sur les données

Le contrôle sur les données opéré par un SGBD correspond à divers éléments : contrôle du domaine, mais aussi de l'intégrité référentielle, de la non nullité, etc.

Ces contraintes peuvent être levées : en spécifiant un domaine très permissif (comme les chaînes de caractères), en supprimant les clause de non nullité, ou bien en supprimant l'intégrité référentielle (dans la fenêtre Relations d'Access).

La suppression des contraintes peut être nécessaire pour intégrer temporairement des données qui ne correspondent pas au modèle. Elles devront bien entendu dans ce cas être mises en conformité au plus vite, et les contraintes pourront alors être réactivées.

ComplémentEnumération

Pour déclarer une énumération dans Access, il faut impérativement la spécifier au niveau de la structure de la base de données, donc au niveau de la propriété Valide si de l'attribut. La déclaration de cette énumération au niveau d'une liste déroulante dans l'IHM de saisie de la table (Liste de choix) n'est pas pertinente car c'est uniquement ce "petit bout d'IHM" qui contrôle les valeurs de l'énumération et non le moteur du SGBD. Donc une autre partie de l'application avec une autre IHM pourra permettre des valeurs différentes, ce qui n'est pas souhaité.