Guide sur la Syntaxe des Expressions et Formules

Lorsque vous utilisez Microsoft Access, vous devez souvent utiliser des valeurs qui ne figurent pas directement dans vos données. Par exemple, vous pouvez être amené à calculer la T.V.A. applicable à une commande ou le montant total de cette commande. Vous pouvez calculer ces valeurs à l’aide d’expressions. Pour utiliser des expressions, vous devez les créer en utilisant la syntaxe appropriée. La syntaxe représente l’ensemble de règles selon lequel les mots et les symboles d’une expression sont correctement combinés. Au départ, les expressions Access sont un peu difficiles à appréhender. Mais avec une bonne compréhension de la syntaxe des expressions et un peu de pratique, vous trouverez cela beaucoup plus facile.

Présentation des expressions

Une expression est une combinaison de tout ou partie des éléments suivants : fonctions intégrées ou définies par l’utilisateur, identificateurs, opérateurs, valeurs et constantes dont le résultat est une valeur unique.

Composants d’une expression

Par exemple, l’expression suivante contient des composants courants :

=Sum([Purchase Price])*0.08
  • Sum() est une fonction intégrée
  • [Purchase Price] est un identificateur
  • * est un opérateur mathématique
  • 0.08 est une constante

Cette expression peut être utilisée dans une zone de texte associée à un pied de formulaire ou à un pied d’état pour calculer la T.V.A. d’un groupe d’éléments.

Certaines expressions peuvent être plus compliquées ou plus simples que cet exemple. Par exemple, cette expression Booléen est seulement constituée d’un opérateur et d’une constante :

>0

Cette expression renvoie :

  • True lors d’une comparaison avec un nombre supérieur à 0.
  • False lors d’une comparaison avec un nombre inférieur à 0.

Vous pouvez utiliser cette expression dans la propriété Valide si d’un contrôle ou d’un champ de table pour veiller à ce que seules des valeurs positives soient entrées. Les expressions sont communément utilisées pour effectuer des calculs, manipuler des caractères ou tester des données. Les tables, les requêtes, les formulaires, les états et les macros possèdent tous des propriétés qui acceptent les expressions. Par exemple, vous pouvez utiliser des expressions dans les propriétés Source contrôle et Valeur par défaut d’un contrôle. Vous pouvez également utiliser des expressions dans la propriété Valide si d’un champ de table.

Composants des expressions

Pour créer une expression, vous devez combiner des identificateurs en utilisant des fonctions, des opérateurs, des constantes et des valeurs. Une expression valide doit contenir au moins une fonction ou un identificateur, et peut également contenir des constantes ou des opérateurs. Vous pouvez aussi utiliser une expression imbriquée dans une autre, généralement en tant qu’argument d’une fonction. Cette opération s’appelle l’imbrication d’expression.

  • Identificateurs    Forme générale :

    [Collection name]![Object name].[Property name]

    Il vous suffit de spécifier un nombre suffisant de parties d’un identificateur pour le rendre unique dans le contexte de votre expression. Un identificateur prend souvent la forme suivante : [Object name].

  • Fonctions    Forme générale :

    Function(argument, argument)

    Un des arguments est généralement un identificateur ou une expression. Certaines fonctions ne nécessitent aucun argument. Avant d’utiliser une fonction particulière, renseignez-vous sur sa syntaxe. Pour plus d’informations, voir Fonctions (classées par catégorie).

  • Opérateurs    Forme générale :

    Identifier operator identifier

    Il existe des exceptions à cette forme, comme décrit à la section Opérateurs.

  • Constantes    Forme générale :

    Identifier comparison_operator  constant
  • Valeurs    Des valeurs peuvent être présentes à différents emplacements d’une expression.

Haut de la page

Objets, collections et propriétés

Tous les formulaires, états, tables, requêtes et champs dans une base de données Access sont connus de manière individuelle en tant qu’objets. Chaque objet a un nom. Certains objets ont déjà un nom, tels que la table Contacts dans une base de données créée sur le modèle Contacts par Microsoft Office Access. Lorsque vous créez un objet, vous lui donnez un nom.

L’ensemble des membres d’un type d’objet spécifique est appelé une collection. Par exemple, l’ensemble de toutes les tables d’une base de données est une collection. Certains objets qui sont membres d’une collection dans votre base de données peuvent également être des collections qui contiennent d’autres objets. Par exemple, un objet de table est une collection qui contient des objets de champ.

Les objets ont des propriétés, lesquelles décrivent les caractéristiques de l’objet et permettent de les modifier. Par exemple, un objet de requête a une propriété Affichage par défaut qui décrit la requête et vous permet de spécifier la manière dont cette dernière apparaîtra lorsque vous l’exécuterez.

Le diagramme suivant illustre la relation existant entre les collections, les objets et les propriétés :

Relations entre collections, objets et propriétés Une propriété

Un objet

Une collection

Haut de la page

Identificateurs

Lorsque vous utilisez un objet, une collection ou une propriété dans une expression, vous faites référence à cet élément à l’aide d’un identificateur. Un identificateur inclut le nom de l’élément que vous identifiez, mais également le nom de l’élément auquel il appartient. Par exemple, l’identificateur d’un champ inclut le nom du champ et le nom de la table auquel il appartient. Exemple d’identificateur de ce type :

[Customers]![BirthDate]

Dans certains cas, le nom d’un élément suffit en tant qu’identificateur. Cela se vérifie lorsque le nom de l’élément est unique dans le contexte de l’expression que vous créez. Le reste de l’identificateur se déduit du contexte. Par exemple, si vous créez une requête qui n’utilise qu’une seule table, les noms des champs seuls suffisent comme identificateurs, car les noms des champs inclus dans une table doivent être uniques dans cette dernière. Étant donné que vous n’utilisez qu’une seule table, le nom de celle-ci est implicite dans chaque identificateur que vous utilisez dans la requête pour faire référence à un champ.

Dans d’autres cas, pour qu’une référence fonctionne, vous devez expliciter les parties d’un identificateur. Cela se vérifie lorsqu’un identificateur n’est pas unique dans le contexte de l’expression. En cas d’ambiguïté, vous devez désigner de manière explicite un nombre suffisant de parties de l’identificateur pour le rendre unique dans son contexte. Par exemple, imaginons que vous créiez une requête qui utilise une table intitulée Produits et une table intitulée Commandes, et que ces deux tables comportent un champ intitulé RéfProduit. Dans ce cas, l’identificateur que vous utilisez dans la requête pour faire référence à l’un des champs RéfProduit doit inclure le nom de la table en plus du nom du champ. Par exemple :

[Products]![ProductID]

Opérateurs d’identificateur    Vous pouvez utiliser trois opérateurs dans un identificateur :

  • L’opérateur Point d’exclamation (!)
  • L’opérateur Point (.)
  • L’opérateur Crochets ([ ])

Pour utiliser ces identificateurs, vous devez mettre chaque partie de l’identificateur entre crochets et les combiner à l’aide d’un opérateur Point d’exclamation ou Point. Par exemple, l’identificateur d’un champ intitulé Nom dans une table intitulée Employés peut prendre cette forme : [Employees]![Last Name]. L’opérateur Point d’exclamation indique à Access que l’élément qui suit est un objet appartenant à la collection qui précède l’opérateur. Dans ce cas, [Nom] est un objet de champ qui appartient à la collection [Employés], qui est lui-même un objet de table.

À proprement parler, vous n’avez pas toujours besoin d’ajouter des crochets autour d’un identificateur ou d’un identificateur partiel. Si l’identificateur ne contient aucun espace ou autre caractère spécial, Access ajoute automatiquement les crochets lorsqu’il lit l’expression. Toutefois, nous vous conseillons d’ajouter les crochets vous-même afin d’éviter toute erreur et pour repérer plus facilement les parties qui sont des identificateurs.

Haut de la page

Fonctions, opérateurs, constantes et valeurs

Pour créer une expression, en plus des identificateurs, vous avez besoin d’effectuer une action. Les fonctions, opérateurs et constantes vous permettent d’effectuer des actions dans une expression.

Fonctions

Une fonction est une procédure que vous pouvez utiliser dans une expression. Certaines fonctions, par exemple Date, ne nécessitent aucune entrée pour fonctionner. Toutefois, la plupart des fonctions nécessitent des entrées, appelées arguments.

Dans l’exemple du début de cet article, la fonction PartDate utilise deux arguments : un argument d’intervalle, avec une valeur de “yyyy”, et un argument de date, avec une valeur de [Customers]![BirthDate]. La fonction PartDate requiert au moins ces deux arguments (intervalle et date), mais peut accepter un maximum de quatre arguments.

La liste suivante présente des fonctions qui sont fréquemment utilisées dans les expressions. Cliquez sur le lien associé à chaque fonction pour obtenir davantage d’informations sur la syntaxe à utiliser avec cette fonction.

  • La fonction Date permet d’insérer la date système actuelle dans une expression. Elle est fréquemment utilisée avec la fonction Format, mais également avec des identificateurs pour les champs qui contiennent des données de date/heure.

    =Date()
  • La fonction PartDate permet de déterminer ou d’extraire une partie d’une date. En règle générale, il s’agit d’une date obtenue à partir d’un identificateur de champ, mais il peut aussi s’agir d’une valeur de date renvoyée par une autre fonction, telle que la fonction Date.

    DatePart ( "yyyy", Date())
  • La fonction DiffDate permet de déterminer la différence entre deux dates, généralement entre une date obtenue à partir d’un identificateur de champ et une date obtenue à l’aide de la fonction Date.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
  • La fonction Format permet d’appliquer un format à un identificateur et aux résultats d’une autre fonction.

    Format([Date],"ww")=Format(Now(),"ww")-1
  • La fonction VraiFaux permet d’évaluer une expression comme étant vraie ou fausse, puis de renvoyer une valeur si le résultat de l’expression est Vrai et une autre valeur si le résultat de l’expression est Faux.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • La fonction DansChaîne permet de rechercher la position d’un caractère ou d’une chaîne au sein d’une autre chaîne. La chaîne dans laquelle la recherche est effectuée est généralement obtenue à partir d’un identificateur de champ.

    InStr(1,[IPAddress],".")
  • Les fonctions GaucheExtracChaîne et Droite permettent d’extraire des caractères d’une chaîne, en commençant par le caractère le plus à gauche (Gauche), une position spécifique au milieu (ExtracChaîne) ou le caractère le plus à droite (Droite). Elles sont fréquemment utilisées avec la fonction DansChaîne. La chaîne à partir de laquelle ces fonctions extraient des caractères est généralement obtenue à partir d’un identificateur de champ.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

Pour obtenir la liste des fonctions, voir Fonctions (classées par catégorie).

Opérateurs

Un opérateur est un mot ou un symbole qui indique une relation arithmétique ou logique spécifique entre les autres éléments d’une expression. Les opérateurs peuvent être :

  • Opérateurs arithmétiques, par exemple le signe plus (+).
  • Opérateurs de comparaison, par exemple le signe égal (=).
  • Opérateurs logiques, par exemple Not.
  • Opérateurs de concaténation, par exemple &.
  • Opérateurs spéciaux, par exemple Like.

Les opérateurs sont généralement utilisés pour indiquer une relation entre deux identificateurs. Les tableaux suivants décrivent les opérateurs que vous pouvez utiliser dans les expressions Access.

Opérateurs arithmétiques

Les opérateurs arithmétiques permettent de calculer une valeur à partir de deux nombres ou plus, ou de modifier le signe d’un nombre de positif à négatif.

Opérateur Objectif Exemple
+ Additionner deux nombres. [Sous-total]+[TVA]
Calculer la différence entre deux nombres ou indiquer la valeur négative d’un nombre. [Prix]-[Remise]
* Multiplier deux nombres. [Quantité]*[Prix]
/ Diviser le premier nombre par le deuxième nombre. [Total]/[NombreArticles]
\ Arrondir les deux nombres à des entiers, diviser le premier nombre par le deuxième, puis tronquer le résultat de manière à obtenir un nombre entier. [Inscriptions]\[Salles]
Mod Diviser le premier nombre par le deuxième et renvoyer uniquement le solde. [Inscriptions] Mod [Salles]
^ Élever un nombre à la puissance d’un exposant. Nombre ^ Exposant

Opérateurs de comparaison

Les opérateurs de comparaison permettent de comparer des valeurs et de renvoyer le résultat Vrai, Faux ou Null (une valeur inconnue).

Opérateur
< Déterminer si la première valeur est inférieure à la deuxième valeur.
<= Déterminer si la première valeur est inférieure ou égale à la deuxième valeur.
> Déterminer si la première valeur est supérieure à la deuxième valeur.
>= Déterminer si la première valeur est supérieure ou égale à la deuxième valeur.
= Déterminer si la première valeur est égale à la deuxième valeur.
<> Déterminer si la première valeur est différente de la deuxième valeur.

Dans tous les cas, si la première ou la deuxième valeur est Null, le résultat est également Null. Étant donné que la valeur Null représente une valeur inconnue, le résultat d’une comparaison avec la valeur Null est également une valeur inconnue.

Opérateurs logiques

Les opérateurs logiques permettent de combiner deux valeurs et de renvoyer le résultat True, False ou Null. Les opérateurs logiques s’appellent également opérateurs booléens.

Opérateur
And Expr1 Et Expr2 True lorsque Expr1 et Expr2 ont la valeur True.
Or Expr1 Ou Expr2 True lorsque Expr1 ou Expr2 a la valeur True.
Eqv Expr1 Eqv Expr2 True lorsque Expr1 et Expr2 ont la valeur True, ou lorsque Expr1 et Expr2 ont la valeur False.
Not Pas Expr True lorsque Expr n’a pas la valeur True.
Xor Expr1 Ou_X Expr2 True lorsque Expr1 a la valeur True ou lorsque Expr2 a la valeur True, mais pas les deux.

Opérateurs de concaténation

Les opérateurs de concaténation permettent de combiner deux valeurs de texte en une chaîne.

Opérateur
& chaîne1 & chaîne2 Combine deux chaînes pour en former une seule.
+ chaîne1 + chaîne2 Combine deux chaînes pour en former une seule et propage les valeurs Null.

Opérateurs spéciaux

Utilisez les opérateurs spéciaux comme indiqué dans le tableau suivant.

Opérateur
Is Null or Is Not Null Détermine si une valeur est Null ou non.
Like “pattern” Fait correspondre des valeurs de chaîne à l’aide des opérateurs de caractère générique et *. Opérateur Comme
Between val1 And val2 Détermine si une valeur de date ou une valeur numérique est comprise dans une plage. Opérateur Entre…Et
In(string1,string2…) Détermine si une valeur de chaîne est contenue dans un ensemble de valeurs de chaîne. Opérateur Dans

Constantes

Une constante est une valeur connue immuable que vous pouvez utiliser dans une expression. Il existe 4 constantes utilisées régulièrement dans Access :

  • True indique quelque chose qui est vrai de manière logique.
  • False indique quelque chose qui est faux de manière logique.
  • Null indique l’absence de valeur connue.
  • “” (empty string) indique une valeur vide.

Les constantes peuvent être utilisées en tant qu’arguments dans une fonction et en tant que critère dans une expression. Par exemple, vous pouvez utiliser la constante de chaîne vide (“”) dans un critère appliqué à une colonne de requête afin d’évaluer les valeurs de champ de cette colonne en entrant le critère suivant : <>””. Dans cet exemple, <> est un opérateur et “” est une constante. Utilisés conjointement, ils indiquent que l’identificateur auquel ils sont appliqués doit être comparé à une chaîne vide. L’expression qui en découle est vraie lorsque la valeur de l’identificateur est tout sauf une chaîne vide.

Utilisez la constante Null avec précaution. Dans la plupart des cas, l’utilisation de la constante Null conjointement avec un opérateur de comparaison entraîne une erreur. Si vous souhaitez comparer une valeur à la valeur Null dans une expression, utilisez l’opérateur Is Null ou Is Not Null.

Valeurs

Vous pouvez utiliser des valeurs littérales dans vos expressions, telles que le nombre 1 254 ou la chaîne “Entrez un nombre entre 1 et 10.” Vous pouvez également utiliser des valeurs numériques, qui peuvent être une série de chiffres, avec un signe et un symbole décimal, si nécessaire. En l’absence de signe, Access suppose qu’il s’agit d’une valeur positive. Pour rendre une valeur négative, incluez le signe moins (). Vous pouvez également utiliser la notation scientifique. Pour ce faire, incluez “E” ou “e” et le signe de l’exposant (par exemple, 1.0E-6).

Lorsque vous utilisez des chaînes de texte, mettez-les entre guillemets afin qu’elles soient correctement interprétées par Access. Dans certains cas, Access insère automatiquement les guillemets. Par exemple, lorsque vous entrez du texte dans une expression pour une règle de validation ou des critères de requête, Access met automatiquement vos chaînes de texte entre guillemets.

Par exemple, si vous entrez le texte Paris, Access affiche “Paris” dans l’expression. Si vous souhaitez qu’une expression produise une chaîne entre guillemets, vous devez placer la chaîne imbriquée entre guillemets simples () ou au sein de trois ensembles de guillemets doubles (). Par exemple, les expressions suivantes sont équivalentes :

Forms![Contacts]![City]. DefaultValue = ' "Paris" '

Forms![Contacts]![City].DefaultValue = " " "Paris" " "

Pour utiliser des valeurs de date/heure, placez les valeurs entre signes dièse (#). Par exemple, #03/07/17#, #7 mars 2017# et #7-mars-2011# sont des valeurs de date/heure valides. Lorsque Access rencontre une valeur de date/heure valide entourée de caractères #, il la traite automatiquement en tant que type de données Date/heure.

Haut de page

La limite d’imbrication pour les expressions dans une base de données web est de 65 niveaux

Étant donné que les expressions imbriquées dans plus de 65 niveaux ne seront pas opérationnelles dans le navigateur, vous ne devez pas utiliser de telles expressions dans une base de données web Access. Aucun message d’erreur ne s’affichera, mais l’expression ne fonctionnera tout simplement pas.

L’utilisation des opérateurs &AND et OR peut créer sur le serveur des niveaux d’imbrication supplémentaires qui ne sont pas reflétés dans le client Access. Par exemple, l’expression “a” & “b” & “c” n’est pas imbriquée dans le Générateur d’expressions, mais dans SharePoint, elle devient concatenate.Db(“a”, concatenate.Db(“b”, “c”) ). Cette traduction crée un niveau d’imbrication. L’utilisation consécutive de nombreux opérateurs &AND ou OR dans une même expression peut entraîner le dépassement de la limite d’imbrication du serveur (65), auquel cas l’expression ne fonctionnera pas dans le navigateur.