Règles de Validation des Champs

Restreindre l’entrée de données à l’aide d’une règle de validation

Vous pouvez vérifier ou valider des données à mesure que vous les entrez dans des bases de données Access de bureau en utilisant des règles de validation. Vous pouvez utiliser le Générateur d’expression pour vous aider à mettre en forme la règle correctement. Les règles de validation peuvent être définies en mode Création de table ou Feuille de données de table. Il existe trois types de règles de validation dans Access :1. Règle de validation de champ   Vous pouvez utiliser une règle de validation de champ pour spécifier un critère sur toutes les valeurs de champ valides doivent respecter. Vous ne devez pas spécifier le champ actif comme faisant partie de la règle, sauf si vous l’utilisez dans une fonction.  Il peut être plus facile d’appliquer les restrictions relatives aux types de caractères pouvant être entrés dans un champ avec un Masque de saisie. Par exemple, un champ de date peut avoir une règle de validation interdisant des valeurs passées.

Exemples rapides :

Interdire les valeurs de date dans le passé : >=Date()

Format de courrier généralement accepté : Is Null OR ((Like “*?@?*.?*”) AND (Not Like “*[ ,;]*”))

Nombre inférieur ou égal à cinq : <=5

Un champ devise ne peut pas être négatif : >=0

Restreindre le nombre de caractères dans une chaîne : Len([StringFieldName])<100

Règle de validation de champ affichée dans le Concepteur de tables Access

2. Règle de validation d’enregistrement   Vous pouvez utiliser une règle de validation d’enregistrement pour spécifier une condition que tous les enregistrements doivent respecter pour être valides. Vous pouvez comparer des valeurs de différents champs à l’aide d’une règle de validation d’enregistrement. Par exemple, un enregistrement comportant deux champs de date peut exiger que les valeurs d’un champ précèdent toujours celles de l’autre (ex : DateDébut avant DateFin).

Exemples rapides :

Vérifier que la date de fin ne précède pas la date de début : [Date de fin]>=[Date de début]

Entrer une date requise n’étant pas éloignée de plus de 30 jours de la date de commande : [DateRequise]<=[DateCommande]+30

Règle de validation de table dans le Concepteur de tables Access.

3. Validation sur un formulaire   Vous pouvez utiliser la propriété Valide si d’un contrôle figurant sur un formulaire pour spécifier un critère que doivent remplir toutes les valeurs entrées dans ce contrôle. La propriété de contrôle Valide si fonctionne comme une règle de validation de champ. En général, vous utilisez une règle de validation de formulaire au lieu d’une règle de validation de champ si la règle est spécifique du formulaire et non de la table, quel que soit l’endroit où elle est utilisée.

Présentation

Cet article explique comment utiliser les règles de validation et le texte de validation dans les champs de table et les contrôles de formulaire. Une règle de validation est l’un des moyens permettant de restreindre la saisie dans un champ de table ou un contrôle de formulaire (une zone de texte par exemple). Le texte de validation vous laisse indiquer un message à l’attention des utilisateurs qui entrent des données non valides.

Quand les données sont entrées, Access vérifie si l’entrée altère une règle de validation. Si c’est le cas, l’entrée est rejetée et Access affiche un message.

Access propose plusieurs moyens de restreindre la saisie :

  • Types de données   Chaque champ de table est associé à un type de données spécifique. Par exemple, un champ Date/Heure accepte uniquement les dates et les heures, un champ Devise accepte uniquement les données monétaires, etc.
  • Propriétés de champ   Certaines propriétés de champ restreignent la saisie de données. Par exemple, la propriété Taille du champ restreint la saisie en limitant la quantité de données.Vous pouvez également utiliser la propriété Valide si pour exiger des valeurs spécifiques et la propriété Message si erreur pour avertir vos utilisateurs d’éventuelles erreurs. Par exemple, si vous entrez une règle telle que >100 Et <1000 dans la propriété Valide si, les utilisateurs sont obligés d’entrer des valeurs comprises entre 100 et 1 000. Une règle telle que [DateFin]>=[DateDébut] oblige les utilisateurs à entrer une date de fin identique ou postérieure à la date de début. Si vous entrez le texte « Entrer des valeurs comprises entre 100 et 1 000 » ou « Entrer une date de fin identique ou postérieure à la date de début » dans la propriété Message si erreur, les utilisateurs savent quand ils ont commis une erreur et comment la résoudre.
  • Masques de saisie   Vous pouvez utiliser un masque de saisie pour valider des données en obligeant les utilisateurs à entrer des valeurs d’une façon spécifique. Par exemple, un masque de saisie peut obliger les utilisateurs à entrer des dates au format européen, tel que 2007.04.14.

Vous pouvez utiliser ces méthodes de validation des données de manière autonome ou les combiner. Les types de données ne sont pas facultatifs et représentent le type de validation de données le plus basique.

Pour plus d’informations sur les types de données, les tailles de champ et les masques de saisie, consultez l’article Présentation des types de données et des propriétés de champ.

Types de règles de validation

Vous pouvez créer deux principaux types de règles de validation :

  • Règles de validation de champ   Utilisez une règle de validation de champ pour vérifier la valeur entrée dans un champ lorsque vous quittez celui-ci. Imaginons que vous ayez un champ Date et que vous entriez >=#01/01/2010# dans la propriété Valide si de ce champ. Cette règle exige des utilisateurs la saisie de dates identiques ou postérieures au 1er janvier 2010. S’ils entrent une date antérieure à 2010 et tentent de passer à un autre champ, Access les empêche de quitter le champ actif tant que le problème n’a pas été résolu.
  • Règles de validation d’enregistrement   Utilisez une règle de validation d’enregistrement pour contrôler quand vous pouvez enregistrer un enregistrement (ligne dans un tableau). Contrairement à une règle de validation de champ, une règle de validation d’enregistrement fait référence à d’autres champs dans le même tableau. Vous créez des règles de validation d’enregistrement lorsque vous avez besoin de vérifier les valeurs dans un seul champ par rapport aux valeurs dans une autre. Par exemple, supposons que votre entreprise nécessite que vous livriez des produits dans les 30 jours et, si vous n’expédiez dans ce délai, que vous deviez rembourser une partie du prix d’achat à votre client. Vous pouvez définir une règle de validation d’enregistrement comme [DateRequise] < = [DateCommande] + 30 pour vous assurer que personne n’ entre une date d’expédition (valeur figurant dans le champ DateRequise) trop éloignée dans l’avenir.

Pour mieux comprendre la syntaxe relative aux règles de validation, voir la section plus bas Contenu d’une règle de validation, pour une explication avec quelques exemples à l’appui.

Où utiliser des règles de validation

Vous pouvez définir des règles de validation pour des champs de table et des contrôles dans des formulaires. Les règles, que vous définissez pour des tables, s’appliquent lorsque vous importez des données. Pour ajouter des règles de validation à une table, ouvrez-la et utilisez les commandes sous l’onglet Champs du ruban. Pour ajouter des règles de validation à un formulaire, ouvrez-le en mode Page et ajoutez les règles aux propriétés des contrôles.

Les procédures de la section plus loin Ajouter une règle de validation à une table expliquent comment ajouter des règles de validation aux champs de table. Les procédures de la section Ajouter une règle de validation à un contrôle sur un formulaire, voir plus loin dans cet article, expliquent comment ajouter des règles aux propriétés dans les contrôles.

Contenu d’une règle de validation

Vos règles de validation peuvent comprendre des expressions, c’est-à-dire des fonctions renvoyant une valeur unique. Vous pouvez utiliser une expression pour effectuer des calculs, manipuler des caractères ou tester des données. Une expression de règle de validation teste les données. Par exemple, une expression peut rechercher une valeur dans un ensemble tel que “Tokyo” Ou “Moscou” Ou “Paris” Ou “Helsinki”. Les expressions peuvent également effectuer des opérations mathématiques. Par exemple, l’expression <100 oblige les utilisateurs à entrer des valeurs inférieures à 100. L’expression ([DateCommande] – [DateLivraison]) calcule le nombre de jours écoulés entre la date à laquelle une commande a été passée et la date de livraison.

Pour plus d’informations sur les expressions, consultez l’article Créer une expression.

Ajouter une règle de validation à une table

Vous pouvez ajouter une règle de validation de champ et/ou d’enregistrement. Une règle de validation de champ vérifie la saisie d’un champ et s’applique lorsque le champ n’est plus actif. Une règle de validation d’enregistrement vérifie la saisie d’un ou plusieurs champs et s’applique lorsque l’enregistrement n’est plus actif. En règle générale, une règle de validation d’enregistrement compare les valeurs d’au moins deux enregistrements.

Remarques : Les types de champ suivants ne prennent pas en charge les règles de validation :

  • NuméroAuto
  • Objet OLE
  • Pièce jointe
  • N° réplication

Créer une règle de validation de champ

  1. Sélectionnez le champ à valider.
  2. Sous l’onglet Champs, dans le groupe Validation de champ, cliquez sur Validation, puis sur Règle de validation de champ.
  3. Utilisez le Générateur d’expression pour créer la règle. Pour plus d’informations sur l’utilisation du Générateur d’expression, voir l’article Utiliser le Générateur d’expression.

Créer un message à afficher pour une entrée de champ non valide

  1. Sélectionnez le champ sur lequel un message d’entrée non valide est nécessaire. Le champ doit déjà comporter une règle de validation.
  2. Sous l’onglet Champs, dans le groupe Validation de champ, cliquez sur Validation, puis sur Message de validation de champ.
  3. Entrez un message approprié. Par exemple, si la règle de validation est >10, le message peut être « Entrez une valeur inférieure à 10 ».

Pour obtenir d’autres exemples de règles et de messages de validation de champ, consultez la section Référence aux règles de validation.

Créer une règle de validation d’enregistrement

  1. Ouvrez la table dont vous souhaitez valider les enregistrements.
  2. Sous l’onglet Champs, dans le groupe Validation de champ, cliquez sur Validation, puis sur Règle de validation d’enregistrement.
  3. Utilisez le Générateur d’expression pour créer la règle. Pour plus d’informations sur l’utilisation du Générateur d’expression, voir l’article Utiliser le Générateur d’expression.

Créer un message à afficher pour une entrée d’enregistrement non valide

  1. Ouvrez la table sur laquelle un message d’entrée non valide est nécessaire. La table doit déjà comporter une règle de validation d’enregistrement.
  2. Sous l’onglet Champs, dans le groupe Validation de champ, cliquez sur Validation, puis sur Message de validation d’enregistrement.
  3. Entrez un message approprié. Par exemple, si la règle de validation est [DateDébut]<[DateFin], lemessage peut indiquer « DateDébut doit être antérieure à DateFin ».

Tester des données existantes par rapport à une nouvelle règle de validation

Si vous ajoutez une règle de validation à une table existante, vous pouvez essayer de tester la règle pour vérifier la validité des données existantes.

  1. Ouvrez la table à tester en mode Création.Sous l’onglet Créer, dans le groupe Outils, cliquez sur Tester les règles de validation.
  2. Cliquez sur Oui pour fermer le message d’alerte et démarrer le test.
  3. Si le système vous invite à enregistrer votre table, cliquez sur Oui.
  4. Il est probable que vous receviez plusieurs messages d’alerte. Lisez les instructions de chaque message, puis cliquez sur Oui ou Non, le cas échéant, pour effectuer ou interrompre le test.

Ajouter une règle de validation à un contrôle figurant sur un formulaire

Vous pouvez utiliser la propriété Valide si et la propriété Message si erreur d’un contrôle figurant sur un formulaire pour valider les données qui y sont entrées et pour aider les utilisateurs qui y entrent des données non valides.

Conseil :  Si vous créez un formulaire automatiquement à partir d’une table à l’aide de l’une des commandes de formulaire du ruban, toute validation de champ dans la table sous-jacente est héritée par les contrôles correspondants sur le formulaire.

Un contrôle peut avoir une règle de validation différent à partir du champ de tableau auquel le contrôle est lié. Ceci est utile si vous souhaitez que le formulaire soit plus restrictif que le tableau. La règle de formulaire est appliquée, et ensuite la règle de tableau est appliquée. Si le tableau est plus restrictif que le formulaire, la règle définie pour le champ de tableau est prioritaire. Si les règles sont mutuellement exclusives, elles vous empêchent complétement d’entrer des données.

Imaginons, par exemple, que vous appliquiez la règle suivante à un champ de date dans une table :

<#01/01/2010#

Cependant, vous appliquez ensuite cette règle au contrôle de formulaire lié au champ de date :

>=#01/01/2010#

Des valeurs antérieures à 2010 sont dorénavant requises dans le champ de date, mais le contrôle de formulaire vous oblige à entrer des dates postérieures à l’année en cours, empêchant ainsi toute saisie de données.

Créer une règle de validation pour un contrôle

  1. Cliquez avec le bouton droit sur le formulaire à modifier, puis cliquez sur Mode Page.
  2. Cliquez avec le bouton droit sur le contrôle à modifier, puis cliquez sur Propriétés pour ouvrir la feuille de propriétés de ce contrôle.
  3. Cliquez sur l’onglet Tous, puis entrez votre règle de validation dans la zone de propriété Valide si.

    Conseil :  Cliquez sur le bouton Créer pour démarrer le Générateur d’expression.

    Pour plus d’informations sur l’utilisation du Générateur d’expressions, consultez l’article Utiliser le Générateur d’expressions.

  4. Entrez un message dans la zone de propriété Message si erreur.

Référence aux règles de validation

Les règles de validation utilisent la syntaxe d’expression d’Access. Pour plus d’informations sur les expressions, consultez l’article Présentation des expressions.

Exemples de règle de validation et de texte de validation

Règle de validation Texte de validation
<>0 Entrez une valeur non nulle.
>=0 La valeur doit être supérieure ou égale à zéro.

-ou-

Vous devez entrer un nombre positif.

0 ou >100 La valeur doit être égale à 0 ou supérieure à 100.
ENTRE 0 ET 1 Entrez une valeur avec un signe de pourcentage. (À utiliser avec un champ qui stocke des valeurs numériques sous forme de pourcentages).
<#01/01/2007# Entrez une date antérieure à 2007.
>=#01/01/2007# AND <#01/01/2008# La date doit être en 2007.
<Date() La date de naissance ne peut pas être à une date ultérieure.
StrComp(UCase([NomFamille]),
[NomFamille],0) = 0
Les données du champ Nom doivent être en majuscules.
>=Ent(Maintenant()) Entrez la date du jour.
H ou F Entrez H pour homme et F pour femme.
COMME “[A-Z]*@[A-Z].com” OU “[A-Z]*@[A-Z].net” OU “[A-Z]*@[A-Z].org” Entrez une adresse de messagerie .com, .net ou .org.
[DateRequise]<=[DateCommande]+30 Entrez une date requise dont l’échéance est de 30 jours maximum à compter de la date de commande.
[DateFin]>=[DateDébut] Entrez une date de fin identique ou postérieure à la date de début.

Exemples de syntaxe pour les opérateurs de règle de validation courants

Opérateur Fonction Exemple
NON Teste les valeurs inverses. À utiliser avant les opérateurs de comparaison sauf EST PAS NULL. PAS > 10 (identique à <=10).
DANS Teste les valeurs égales aux membres existants dans une liste. La valeur de comparaison doit être une liste séparée par une virgule, entre parenthèses. DANS (“Tokyo”,”Paris”,”Moscou”)
ENTRE Teste une plage de valeurs. Vous devez utiliser deux valeurs de comparaison, inférieure et supérieure, et vous devez les séparer avec l’opérateur ET. ENTRE 100 ET 1000 (identique à >=100 ET <=1000)
COMME Fait correspondre les chaînes modèles dans les champs Texte et Mémo. COMME “Geo*”
EST PAS NULL Oblige les utilisateurs à entrer des valeurs dans ce champ. Ceci équivaut à définir la propriété Required sur Oui. Cependant, lorsque vous activez la propriété Required et qu’un utilisateur ne réussit pas à entrer de valeur, Access affiche un message d’erreur au ton quelque peu abrupt. En règle générale, vous trouverez l’utilisation de votre base de données plus facile si vous utilisez l’opérateur EST PAS NULL et que vous entrez un message amical dans la propriété Texte de validation. EST PAS NULL
ET Spécifie que toutes les parties de la règle de validation doivent être vraies. >= #01/01/2007# ET <=#03/06/2008#

Remarque : Vous pouvez également utiliser ET pour combiner les règles de validation. Par exemple : PAS “R-U” ET COMME “U*”.

OU Spécifie qu’une partie seulement des parties de la règle de validation doit être vraie. Janvier OU février
< Inférieur à.
<= Inférieur ou égal à.
> Supérieur à.
>= Supérieur ou égal à.
= Égal à.
<> Différent de.

Utiliser les caractères génériques dans des règles de validation

Vous pouvez utiliser des caractères génériques dans vos règles de validation. N’oubliez pas qu’Access prend en charge deux jeux de caractères génériques : ANSI-89 et ANSI-92. Ces deux normes utilisent un jeu de caractères génériques différents.

Par défaut, tous les fichiers .accdb et .mdb utilisent la norme ANSI-89.

Vous pouvez passer de la norme ANSI standard pour une base de données à la norme ANSI-92 en procédant comme suit :

  1. Sous l’onglet Fichier, cliquez sur Options.
  2. Dans la boîte de dialogue Options Access, cliquez sur Concepteurs d’objets.
  3. Dans la section Création de requête, sous Syntaxe compatible SQL Server (ANSI-92), sélectionnez Cette base de données.

Pour plus d’informations sur l’utilisation des caractères génériques et les normes ANSI pour le langage SQL, consultez l’article Référence aux caractères génériques Access.