Vous pouvez utiliser des expressions pour une grande variété de tâches dans Microsoft Office Access 2007, comme des calculs mathématiques, la combinaison ou l’extraction de texte ou la validation de données. Cet article fournit des informations d’arrière-plan sur les expressions : utilisation, comparaison avec des formules Microsoft Office Excel et présentation de leurs composants.
Contenu de cet article
Présentation des expressions
Une expression est une combinaison de certaines des fonctions suivantes : fonctions (procédure Function : procédure qui renvoie une valeur et qui peut être utilisée dans une expression. Vous déclarez une fonction à l’aide de l’instruction Function et vous la terminez à l’aide de l’instruction End Function.) intégrées ou définies par l’utilisateur, identificateurs (identificateur (expressions) : élément d’une expression qui fait référence à la valeur d’un champ, d’un contrôle ou d’une propriété. Par exemple, Formulaires![Commandes]![N° commande] est un identificateur qui fait référence à la valeur se trouvant dans le contrôle N° commande du formulaire Commandes.), opérateurs (opérateur : signe ou symbole qui spécifie le type de calcul à réaliser dans une expression. Il existe des opérateurs mathématiques, de comparaison, logiques et de référence.) et constantes (constante : valeur qui n’est pas calculée et, par conséquent, ne change pas. Par exemple, le nombre 210 et le texte « Gains trimestriels » sont des constantes. Une expression, ou une valeur obtenue à partir d’une expression, n’est pas une constante.) qui correspond à une seule valeur.
Par exemple, l’expression suivante contient les quatre éléments suivants :
=Sum([Purchase Price])*0,08
Dans cet exemple, Sum() est une fonction intégrée, [Purchase Price] est un identificateur, * est un opérateur mathématique et 0,08 est une constante. Cette expression peut être utilisée dans une zone de texte, ou dans un pied de formulaire ou d’état pour calculer le code taxe d’un groupe d’articles.
Certaines expressions peuvent être plus compliquées ou simples que cet exemple. Par exemple, cette expression booléenne (Boolean : qualifie une expression qui peut être évaluée comme étant vraie (valeur différente de 0) ou fausse (0). Vous pouvez utiliser les mots clés True et False pour fournir respectivement les valeurs -1 et 0. Le type de données de champ Oui/Non est booléen et a la valeur -1 pour Oui.) ne contient qu’un opérateur et une constante :
>0
Cette expression renvoie True lorsqu’elle est comparée à un chiffre supérieur à 0 et False lorsqu’elle est comparée à un chiffre inférieur à 0. Vous pouvez utiliser cette expression dans la propriété Validation Rule d’un champ de contrôle ou de table pour être certain que seules des valeurs positives sont spécifiées.
Dans Access, les expressions sont souvent utilisées pour effectuer des calculs, manipuler des caractères ou tester des données. Les tables, requêtes, formulaires, états et macros présentent tous des propriétés acceptant une expression. Par exemple, vous pouvez utiliser des expressions dans les propriétés Control Source et Default Value d’un contrôle. Vous pouvez également utiliser des expressions dans la propriété Validation Rule d’un champ de table. En outre, lorsque vous rédigez du code Microsoft Visual Basic pour Applications (VBA) pour une procédure événementielle ou pour un module, vous utilisez souvent des expressions qui sont semblables à celles que vous utilisez dans un objet Access, comme une table ou une requête.
Remarque Pour plus d’informations sur les composants d’une expression, voir la section Composants d’une expression, plus loin dans cet article.
Haut de la page
À quoi servent les expressions ?
Dans Access, vous pouvez utiliser des expressions pour effectuer l’une des opérations suivantes :
- Calculer des valeurs qui n’existent pas directement parmi vos données. Vous pouvez calculer des valeurs pour les champs de requête et les contrôles dans des formulaires et des états.
- Définir une valeur par défaut pour un champ de table ou un contrôle de formulaire ou d’état. Vos valeurs par défaut s’affichent alors chaque fois que vous ouvrez une table, un formulaire ou un état.
- Créer une règle de validation. Les règles de validation déterminent les données que les utilisateurs peuvent entrer dans un champ ou un contrôle.
- Spécifier des critères pour une requête.
La façon la plus courante d’utiliser des expressions dans Access est de calculer des valeurs qui n’existent pas directement dans vos données. Par exemple, vous pouvez créer dans une requête une colonne qui calcule un total de lignes et utiliser cette valeur dans un formulaire ou un état. Une colonne dans une requête qui résulte d’un tel calcul est appelée un champ calculé. Par exemple, l’expression de requête suivante calcule le total de lignes en appliquant une remise :
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100
Cette expression attribue à la colonne résultante, ou au champ calculé, le nom ExtendedPrice.
Vous ne pouvez pas créer un champ de table qui calcule automatiquement sa propre valeur. Le cas échéant, vous pouvez utiliser un champ de table pour stocker les résultats d’un calcul qui a été effectué à un autre endroit (par exemple, dans une requête ou un formulaire). Toutefois, à moins que ce ne soit nécessaire, il est plus efficace de ne stocker que les valeurs dont vous avez besoin pour effectuer un calcul et de calculer ensuite les résultats lorsque vous en avez besoin.
Par exemple, supposons que vous deviez calculer le montant total en euros d’une ligne de facturation. Plutôt que de stocker le total des lignes dans la base de données, vous le calculez lorsque vous en avez besoin à partir de deux autres éléments stockés dans la base de données : la quantité et le prix. Dans un contrôle de zone de texte de l’état Facture, l’expression suivante vous permet de calculer la valeur :
=CCur([Quantity]*[Price])
Cette expression multiplie la quantité par le prix et utilise la fonction CCur (conversion en devise) pour convertir le résultat en type de données Currency. Vous pouvez également calculer une remise pour chaque commande.
Vous pouvez créer un champ calculé lorsque vous devez calculer ou effectuer des opérations sur les données des champs d’au moins deux tables. Par exemple, plusieurs tables stockent les noms et prénoms dans des champs distincts. Pour combiner ces noms et prénoms et les afficher dans un seul champ, vous pouvez créer un champ calculé dans une requête. Comme nous l’avons vu plus haut, il paraît logique de créer ce type de champ calculé directement dans une table, mais les tables ne prennent pas en charge ce type d’opération. Elles ne proposent ni champ ni propriété permettant d’ajouter l’expression nécessaire.
Un champ calculé qui combine des noms et prénoms se présente comme suit : [FirstName] & " " & [LastName]. Dans ce cas, les symboles « e » commercial (&) combinent la valeur du champ FirstName (Prénom), un espace (entre guillemets) et la valeur du champ LastName (Nom).
Vous pouvez également utiliser des expressions dans Access pour fournir une valeur par défaut à un champ d’une table ou d’un contrôle. Par exemple, pour définir comme valeur par défaut d’un champ de date la date du jour, tapez Date() dans la zone de propriétés Default Value de ce champ.
En outre, vous pouvez également utiliser une expression pour définir une règle de validation. Par exemple, vous pouvez utiliser dans un champ de contrôle ou de table une règle de validation visant à garantir que la date entrée soit ultérieure ou égale à la date du jour. À cette fin, la valeur de la zone de propriétés Validation Rule doit être >= Date().
Une expression vous permet enfin de définir les critères d’une requête. Supposons, par exemple, que vous souhaitiez connaître les ventes de produits correspondant aux commandes expédiées durant une période spécifique. Vous pouvez spécifier des critères permettant de définir une plage de dates et Access ne renvoie que les lignes qui correspondent à ces critères. Par exemple, votre expression peut avoir l’aspect suivant :
Between #1/1/2007# And #12/31/2007#
Lorsque vous ajoutez des critères à la requête et que vous exécutez cette dernière, seules les valeurs correspondant aux dates spécifiées sont renvoyées.
Haut de la page
Comparaison d’expressions Access et de formules Excel
Les expressions Access ressemblent à des formules Excel car les deux font appel à des éléments semblables pour produire un résultat. Les formules Excel et les expressions Access contiennent au moins un des éléments suivants :
- Identificateurs Dans Excel, les identificateurs qualifient des cellules individuelles ou des plages de cellules dans un classeur, comme A1, B3:C6 ou Sheet2!C32. Dans Access, les identificateurs qualifient les noms de champs de tables (comme [Contacts]![First Name]), les contrôles sur des formulaires ou des états (comme Forms![Task List]![Description]) ou les propriétés de ces champs et contrôles (comme Forms![Task List]![Description].ColumnWidth).
- Opérateurs Dans Access et Excel, les opérateurs permettent de comparer des valeurs ou d’effectuer des opérations simples sur vos données. Les symboles + (plus) ou - (minus) en sont des exemples.
- Fonctions et arguments Dans Access et Excel, les fonctions et arguments permettent d’exécuter des tâches impossibles avec des opérateurs uniquement ; vous pouvez, par exemple, calculer la moyenne des valeurs d’un champ ou convertir le résultat d’un calcul en un format de devise. SUM et STDEV sont des exemples de fonctions. Les arguments sont des valeurs qui fournissent des informations aux fonctions. Access et Excel proposent de nombreuses fonctions, mais les noms de fonctions semblables sont parfois différents dans les deux programmes. Par exemple, dans Excel, la fonction AVERAGE correspond à la fonction AVG dans Access.
- Constantes Dans Access et Excel, les constantes sont des valeurs qui ne changent pas, comme des chaînes de texte ou des nombres qui ne sont pas calculés par une expression.
Les expressions Access font appel à des opérateurs et à des constantes semblables à ceux qui sont utilisés dans les formules Excel, mais les expressions Access utilisent des fonctions et identificateurs différents. Une formule Excel ne peut être appliquée qu’à un seul endroit : une cellule dans une feuille de calcul. Toutefois, vous pouvez utiliser une expression Access à plusieurs endroits en vue d’exécuter des tâches diverses, dont les suivantes :
- Création de contrôles calculés dans des formulaires et des états
- Création de champs calculés dans des requêtes
- À la place de critères dans des requêtes
- Validation de données entrées dans un champ ou dans un contrôle d’un formulaire
- Regroupement de données dans des rapports
Vous pouvez utiliser une expression Access ou une formule Excel pour calculer des valeurs numériques ou des valeurs de date/d’heure à l’aide d’opérateurs mathématiques. Par exemple, pour calculer une remise pour un client, utilisez la formule Excel =C2*(1-D2) ou l’expression Access = [Unit Price]*(1-[Discount]).
Vous pouvez également utiliser une expression Access ou une formule Excel pour combiner, fractionner ou manipuler des chaînes à l’aide d’opérateurs de chaîne. Par exemple, pour combiner un nom et un prénom en une chaîne, vous pouvez utiliser la formule Excel =D3 & " " & D4 ou l’expression Access = [First Name] & " " & [Last Name].
Haut de la page
Composants d’une expression
Les expressions sont composées d’identificateurs, d’opérateurs, de fonctions et d’arguments, de constantes et de valeurs. Les sections suivantes décrivent ces composants plus en détail. Les exemples fournis dans ces sections présentent également de brèves descriptions de la syntaxe des expressions.
Identificateurs
Un identificateur est un champ, de propriété ou de contrôle. Dans une expression, un identificateur sert à faire référence à la valeur associée à un champ, une propriété ou un contrôle. Par exemple, prenons le cas de l'expression =[DateRequise]-[DateExpédition]. Cette expression retranche la valeur du champ ou du contrôle DateExpédition de celle du champ ou du contrôle DateRequise. Dans cette expression, DateRequise et DateExpédition servent tous deux d'identificateurs.
Opérateurs
Access prend en charge divers opérateurs, parmi lesquels des opérateurs arithmétiques courants, tels que +, -, * (multiplication) et / (division). Vous pouvez également utiliser des opérateurs de comparaison, tels que < (inférieur à) ou > (supérieur à) pour comparer des valeurs, des opérateurs de texte, tels que & et + pour concaténer (combiner) du texte, des opérateurs logiques comme Not et And pour déterminer des valeurs vraies ou fausses, et d’autres opérateurs propres à Access.
Fonctions et arguments
Les fonctions sont des procédures intégrées que vous pouvez utiliser dans vos expressions. Elles s’utilisent dans le cadre d’opérations diverses et variées, telles que le calcul de valeurs, la manipulation de texte et de dates, ainsi que la synthèse de données. Par exemple, la fonction Date, qui renvoie la date du jour, est une fonction souvent utilisée. Vous pouvez utiliser la fonction Date de diverses façons, comme dans une expression qui définit la valeur par défaut d’un champ d’une table. Dans cet exemple, si un utilisateur ajoute un enregistrement, la valeur du champ est paramétrée par défaut sur la date du jour.
Certaines fonctions nécessitent des arguments. Un argument est une valeur qui fournit une entrée à la fonction. Si une fonction nécessite plusieurs arguments, il est nécessaire de séparer les arguments d'une virgule. Prenons l'exemple de la fonction Date dans l'exemple d'expression suivant :
=Format(Date(),"mmmm d, yyyy")
Cet exemple utilise deux arguments. Le premier argument est la fonction Date() qui renvoie la date du jour. Le deuxième argument ("mmmm d, yyyy"), séparé du premier argument par une virgule, spécifie une chaîne de texte pour indiquer à la fonction Format comment formater la valeur de date retournée. Notez que la chaîne de texte doit figurer entre guillemets. Cette expression confirme également que vous pouvez utiliser la valeur renvoyée par une fonction comme un argument dans une autre fonction. Dans ce cas, Date() tient lieu d’argument.
Vous trouverez des liens vers des informations supplémentaires sur la syntaxe des fonctions et expressions dans la section Voir aussi.
Constantes
Une constante est un élément dont la valeur ne change pas tant qu’Access est actif. Les constantes True, False et Null sont souvent utilisées dans des expressions. Vous pouvez également définir vos propres constantes en code VBA et les utiliser dans des procédures VBA. VBA est le langage de programmation utilisé par Access.
Remarque Vous ne pouvez pas utiliser de constantes VBA dans les fonctions personnalisées utilisées dans des expressions. Par exemple, VBA intègre des constantes pour les jours de la semaine : vbSunday représente Dimanche, vbMonday représente Lundi, et ainsi de suite. Chaque constante correspond à une valeur numérique. Par exemple, la valeur numérique de vbSunday est 1, celle de vbMonday est 2, etc. Vous ne pouvez pas utiliser ces constantes dans une fonction personnalisée appelée à partir d’une expression. Vous devez plutôt utiliser des valeurs numériques.
Valeurs
Vous pouvez utiliser des valeurs littérales dans vos expressions, telles que le nombre 1 254 ou la chaîne « Entrez un chiffre compris entre 1 et 10. ». Vous pouvez utiliser des valeurs numériques, qui peuvent représenter une série de chiffres, y compris un signe et une virgule décimale, si cela est nécessaire. En l’absence de signe, Access identifie une valeur positive. Pour spécifier une valeur négative, ajoutez le signe moins (-). Vous pouvez également utiliser une notation scientifique. Pour cela, ajoutez la lettre « E » ou « e » suivie du signe de l’exposant (par exemple, 1,0E-6).
Lorsque vous utilisez des chaînes de texte en tant que constantes, placez-les entre guillemets pour vous assurer qu’Access les interprète correctement. Dans certains cas, Access insère les guillemets. Par exemple, lorsque vous tapez du texte dans une expression pour rédiger une règle de validation ou les critères d’une requête, Access inclut automatiquement vos chaînes de texte entre guillemets.
Par exemple, si vous tapez le terme Paris, Access affiche "Paris" dans l’expression. Si vous souhaitez qu’une expression produise une chaîne entre guillemets, il convient d’inclure la chaîne imbriquée entre guillemets simples (’) ou entre trois 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/d’heure, vous devez inclure les valeurs entre des signes dièse (#). Par exemple, #3-7-07#, #7-Mar-07# et #Mar-7-2007# sont des valeurs valides de date/d’heure. Lorsqu’Access rencontre une valeur de date/d’heure comprise entre des caractères #, elle traite automatiquement la valeur comme un type de données Date/Time.
Haut de la page
Exemples d’expressions
Le tableau suivant présente certains exemples d’expressions Access et la façon dont elles sont généralement utilisées :
| Expression |
Rôle |
| =[DateRequise]-[DateEnvoi] |
Calcule la différence entre les valeurs de date figurant dans deux contrôles de zones de texte (intitulés DateRequise et DateExpédition) d’un état. |
| Date() |
Définit la valeur par défaut d’un champ de table de type Date/Heure à la date du jour. |
| PrixPondéré: CMonnaie([Détails de commande].Prix unitaire*[Quantité]*(1-[Remise])/100)*100 |
Crée un champ calculé appelé PrixPondéré dans une requête. |
| Between #1/1/2007# And #12/31/2007# |
Spécifie les critères d’un champ Date/Heure dans une requête. |
| =[Orders Subform].Form!OrderSubtotal |
Renvoie la valeur du contrôle Sous-totalCommande du sous-formulaire Commandes se trouvant dans le formulaire Commandes. |
| >0 |
Définit une règle de validation pour un champ numérique de table (les utilisateurs doivent entrer des valeurs supérieures à zéro). |
Certaines expressions commencent par l’opérateur égal (=) et d’autres non. Lorsque vous calculez une valeur pour un contrôle d’un formulaire ou d’un état, vous utilisez l’opérateur = en début d’expression. Dans d’autres cas, lorsque vous tapez une expression dans une requête ou dans la propriété DefaultValue ou ValidationRule d’un champ ou d’un contrôle, vous n’utilisez pas l’opérateur = à moins que vous n’ajoutiez l’expression à un champ Texte d’une table. Dans certains cas, comme lorsque vous ajoutez des expressions à des requêtes, Access supprime automatiquement l’opérateur =.