| S'applique à |
Microsoft Office Access 2003 Microsoft Access 2000 et 2002 |
Souvent, vous avez besoin d'informations qui ne sont pas directement disponibles dans un champ de votre base de données. Par exemple, il se peut que vous deviez calculer une TVA sur une commande ou le total de la commande elle-même. À d'autres moments, il vous faudra fournir une requête ou un filtre avec des critères — des informations qui déterminent avec quels enregistrements travailler. Ou il se peut que vous souhaitiez définir une valeur par défaut pour un champ ou un contrôle, ou une règle de validation pour un champ ou une table. Dans ces cas-là, vous utilisez une expression.
Cet article constitue une introduction aux expressions. Vous allez apprendre ce qu'est une expression et pourquoi et où en utiliser une. Vous ferez également connaissance avec le Générateur d'expression, un outil Access qui facilite la création d'expressions. Pour finir, vous apprendrez comment créer une expression, soit à l'aide du Générateur d'expression, soit à partir de zéro.
Dans cet article
Qu'est-ce qu'une expression ?
Pourquoi utiliser des expressions ?
Où et comment utiliser des expressions
Utilisation du Générateur d'expression
Utilisation d'expressions à des fins pratiques
Tableau d'opérateurs
Qu'est-ce qu'une expression ?
Dans Access, une expression est équivalente à une formule dans Excel. Une expression est constituée d'un nombre d'éléments possibles qui sont utilisés, seuls ou ensemble, afin de produire un résultat. Les éléments peuvent être des identificateurs (les noms de champs, de contrôles ou de propriétés), des opérateurs tels que + (plus) ou - (moins), des fonctions, des constantes et des valeurs. On utilise une expression pour effectuer un calcul, récupérer la valeur d'un contrôle, fournir des critères à une requête, définir des règles, créer des contrôles calculés et des champs calculés et définir un niveau de groupe pour un état.
Voici quelques exemples d'expressions.
| Expression |
But |
| =[À livrer avant]-[Date envoi] |
Calcule la différence entre les valeurs de deux contrôles de zone de texte dans un état |
| Date() |
Affecte la date actuelle comme valeur par défaut d'un champ d'une table |
| ExtendedPrice: CMonnaie([Détails commande].Prix unitaire*[Quantité]*(1-[Remise])/100)*100 |
Crée un champ calculé dans une requête |
| Entre #1/1/2005# et #12/31/2005# |
Utilisé pour entrer des critères pour un champ Date/Heure dans une requête |
| =[Sous-formulaire commandes].Formulaire!Sous-total commande |
Retourne la valeur du contrôle Sous-total commande sur le sous-formulaire Commandes qui se trouve sur le formulaire Commandes |
| > 0 |
Définit une règle de validation pour un champ numérique dans une table |
Comme vous pouvez le constater en examinant les exemples d'expressions précédents, une expression dans Access n'est pas simplement un calcul. Les expressions sont utilisées à différentes fins.
Vous remarquerez également que les exemples d'expressions diffèrent les uns des autres dans une certaine mesure. Par exemple, certaines expressions commencent par l'opérateur = . Lors du calcul d'une valeur pour un contrôle sur un formulaire ou un état, vous utilisez l'opérateur = pour commencer l'expression. Dans d'autres cas, vous n'utilisez pas l'opérateur =. Par exemple, lorsque vous entrez une expression dans une requête ou dans la propriété Valeur par défaut ou Valide si d'un champ ou d'un contrôle, vous n'utilisez pas l'opérateur =.
Identificateurs
Un identificateur est le nom d'un champ, d'une propriété ou d'un contrôle. On utilise un identificateur dans une expression pour faire référence à la valeur associée au champ, à la propriété ou au contrôle. Par exemple, prenez l'expression =[À livrer avant]-[Date envoi]. Cette expression soustrait la valeur du champ ou du contrôle Date envoi de la valeur du champ ou du contrôle À livrer avant. Dans cette expression, À livrer avant et Date envoi sont tous deux des identificateurs.
Opérateurs
Access prend en charge différents opérateurs, y compris les opérateurs arithmétiques attendus tels que +, -, * (multiplication), / (division), des opérateurs de comparaison pour la comparaison de plusieurs valeurs, des opérateurs de texte pour la concaténation de texte, des opérateurs logiques pour la détermination de valeurs vrai ou faux, ainsi que d'autres opérateurs spécifiques à Access. Pour plus de détails sur les opérateurs, consultez la section Tableau d'opérateurs
dans cet article.
Fonctions
Les fonctions sont des procédures intégrées que vous pouvez utiliser dans vos expressions. Vous les utilisez pour effectuer des calculs, manipuler du texte et des dates, résumer des données et effectuer une large gamme d'opérations. Par exemple, l'une des fonctions les plus couramment utilisées est Date. La fonction Date retourne la date actuelle. Vous pourriez l'utiliser dans une expression qui définit la valeur par défaut d'un champ dans une table. De cette façon, chaque fois qu'un nouvel enregistrement est ajouté, le champ adopte par défaut la date actuelle.
Certaines fonctions requièrent des arguments. Un argument est une valeur qui sert d'entrée à la fonction. Si une fonction nécessite plusieurs arguments, vous les séparez d'une virgule. Par exemple, prenez la fonction Format dans l'exemple d'expression suivant :
=Format(Date(),"mmmm j, aaaa")
Dans cet exemple, nous fournissons deux arguments. Le premier est la fonction Date. Vous pouvez souvent fournir la valeur retournée par une fonction en tant qu'argument à une autre fonction. Dans le cas présent, nous fournissons la date actuelle, retournée par la fonction Date. Le deuxième argument, séparé du premier par une virgule, est une chaîne de texte qui indique à la fonction Format comment mettre en forme la date. Notez que la chaîne de texte est placée entre guillemets. En règle générale, lorsque vous devez spécifier du texte, placez-le entre guillemets.
Access prend en charge une longue liste de fonctions intégrées.
Constantes
Une constante est un élément nommé dont la valeur demeure constante durant l'exécution d'Access. Les constantes que vous utiliserez le plus souvent dans vos expressions sont Vrai, Faux et Null. Vous pouvez également définir vos propres constantes dans Visual Basic pour Applications (VBA) que vous pouvez utiliser dans des procédures VBA. VBA est le langage de programmation utilisé par Access.
Remarque Vous ne pouvez pas utiliser de constantes Microsoft Visual Basic dans des fonctions personnalisées que vous utilisez dans vos expressions. Par exemple, Visual Basic possède des constantes pour les jours de la semaine : vbSunday représente dimanche, vbMonday représente lundi, et ainsi de suite. Chaque constante possède une valeur numérique correspondante : la valeur numérique de vbSunday est 1, celle de vbMonday est 2, et ainsi de suite. Vous ne pouvez pas utiliser ces constantes dans une fonction personnalisée qui est appelée à partir d'une expression. Au lieu de cela, vous devez utiliser les valeurs numériques.
Valeurs
Vous pouvez employer des valeurs littérales dans vos expressions. Les valeurs numériques peuvent être une série de chiffres, y compris un signe et une virgule décimale si nécessaire. En l'absence de signe, Access suppose que la valeur est positive. Pour rendre une valeur négative, incluez le signe moins (-). Vous pouvez également utiliser la notation scientifique. Pour cela, incluez E ou e et le signe de l'exposant (par exemple 1.0E-6).
Les valeurs de chaîne de texte doivent être placées entre guillemets. Dans certains cas, Access les fournira à votre intention. Par exemple, lorsque vous tapez du texte dans une expression pour une règle de validation ou pour des critères de requête. Access fournira les guillemets automatiquement.
Par exemple, si vous tapez le texte Paris, Access affiche
"Paris" dans l'expression.
Si vous souhaitez qu'une expression produise une chaîne comprise entre guillemets, vous pouvez placer la chaîne imbriquée dans des guillemets simples (') ou dans trois ensembles de guillemets doubles ("). Par exemple, les expressions suivantes sont équivalentes :
Formulaires![Contacts]![Ville].Valeur par défaut = ' "Paris" '
Formulaires![Contacts]![Ville].Valeur par défaut = " " "Paris" " "
Les valeurs de Date/Heure doivent être placées entre des signes dièse (#). Par exemple, #07-03-05# et #07 mars 05# sont des valeurs Date/Heure valides. Lorsque Access voit une valeur Date/Heure valide placée entre des signes #, il traite automatiquement cette valeur en tant que type de données Date/Heure.
Haut de la page
Pourquoi utiliser des expressions ?
Dans Access, on utilise souvent des expressions et pour différentes raisons. Par exemple, lorsque vous souhaitez calculer la valeur d'un champ sur un formulaire; vous utilisez une expression. Imaginez que vous souhaitez calculer la somme totale d'un élément de ligne sur une facture. En général, vous ne stockez pas le total d'élément de ligne dans la base de données. Au lieu de cela, vous le calculez si besoin est à partir de deux éléments que vous devez stocker dans la base de données — quantité et prix.
=CMonnaie([Quantité]*[Prix])
Cette expression multiplie la quantité par le prix, puis utilise la fonction CMonnaie (convertir en monnaie) pour convertir le total en type de données Monnaie.
On utilise généralement un contrôle de zone de texte pour stocker une valeur calculée, mais on peut utiliser tout contrôle qui possède une propriété Source contrôle. Un contrôle qui possède une expression comme source contrôle porte le nom de contrôle calculé. Si le contrôle est une zone de texte, vous pouvez entrer l'expression directement dans la zone de texte. Vous pouvez également l'entrer dans la propriété Source contrôle dans la feuille des propriétés.

Outre le calcul d'une valeur nécessaire qui n'est pas stockée dans la base de données, on utilise souvent une expression pour fournir des informations à une requête. Par exemple, supposez que vous souhaitez afficher les ventes de produits qui ont été expédiées durant une certaine période. Vous pouvez entrer une expression de critères qui utilise l'opérateur Entre pour définir la plage de dates. Access retourne uniquement les lignes qui répondent aux critères et dont la date d'envoi est comprise dans la plage de dates spécifiée :
Entre #01/01/2004# et #13/12/2004#
Vous pourriez également décider que l'emplacement idéal pour calculer un total d'élément de ligne est dans la requête qui fournit les données au formulaire ou à l'état. Une colonne d'une requête qui résulte d'un calcul de ce type porte le nom de champ calculé. Par exemple, l'expression suivante dans une requête calcule les totaux d'éléments de ligne avec une remise appliquée :
ExtendedPrice: CMonnaie([Détails commandes].[Prix unitaire]*[Quantité]*(1-[Remise])/100)*100
L'expression attribue à la colonne résultante le nom ExtendedPrice.
L'une des autres utilisations utiles d'une expression consiste à fournir une valeur par défaut pour un champ d'une table ou pour un contrôle. Par exemple, si vous avez un champ de date dont vous souhaitez que la valeur par défaut soit la date actuelle, vous pouvez taper Date() dans la zone de propriété Valeur par défaut pour ce champ. Vous pouvez également utiliser une expression pour définir une règle de validation. Par exemple, vous pourriez utiliser une règle de validation qui exige que la date entrée soit ultérieure ou égale à la date actuelle. Dans ce cas, vous affectez à la valeur de la zone de propriété Règle de validation la valeur >= Date().
Haut de la page
Où et comment utiliser des expressions
Vous pouvez utiliser une expression à de nombreux emplacements. Par exemple, les tables, les requêtes, les formulaires, les états et les macros ont tous des endroits où vous pouvez utiliser une expression. De plus, lorsque vous écrivez du code VBA pour une procédure d'événement ou pour un module, vous utilisez souvent des expressions semblables à celles utilisées dans un objet Access, tel qu'une table ou une requête.
Dans les expressions, les noms des champs et des contrôles doivent être placés entre crochets ; par exemple [Prix unitaire]. Si vous entrez un nom qui ne contient ni espaces ni caractères spéciaux, Access le place automatiquement entre crochets. Si un nom contient des espaces ou des caractères spéciaux, vous devez taper vous-même les crochets.
Vous pouvez attribuer un nom à un contrôle calculé en définissant la propriété Nom. Le nom doit être unique parmi tous les noms de contrôles du formulaire ou de l'état. Il doit également être différent de tout nom de contrôle ou de champ qui est utilisé dans l'expression pour ce contrôle, et différent de tout nom de champ dans la table ou la requête sous-jacente.
Les emplacements les plus courants où l'on utilise des expressions sont les suivants :
Dans un contrôle de zone de texte sur un formulaire ou un état
On utilise une expression dans un contrôle de zone de texte pour créer un contrôle calculé. Par exemple, supposez que vous souhaitez créer un sous-total constituant la somme de tous les éléments de ligne sur un formulaire de commande. Le sous-total pourrait ressembler à ce qui suit.

Pour calculer le sous-total, vous devez placer un contrôle de zone de texte sur le formulaire et attribuer à la propriété Source contrôle de la zone de texte l'expression suivante :
=Somme([ExtendedPrice])
La fonction Somme calcule le total pour un ensemble de valeurs à partir de votre source d'enregistrements — dans ce cas, la colonne nommée ExtendedPrice.
Pour entrer une expression dans un contrôle de zone de texte
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires.
-
Cliquez sur le formulaire, puis sur Modifier, dans la fenêtre Base de données.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés pour afficher la feuille de propriétés de la zone de texte.
Access affiche la feuille de propriétés de la zone de texte.
- Modifiez la propriété Source contrôle de la zone de texte en = suivi par l'expression ou cliquez sur le bouton Générateur
situé à droite de la boîte de propriétés pour créer une expression à l'aide du Générateur d'expression. Par exemple, pour calculer le sous-total indiqué ci-dessus, vous devez taper =Somme([ExtendedPrice]). Votre feuille de propriétés ressemblera à celle illustrée ci-dessous.

- Fermez la feuille de propriétés.
Dans la cellule de critères dans la grille de création d'une requête
On utilise une expression pour définir des critères dans une requête. Access retourne alors seulement les lignes qui répondent aux critères. Par exemple, supposez que vous souhaitez afficher toutes les commandes dont l'envoi a eu lieu en 2004. Pour entrer les critères, vous entrez l'expression suivante dans la cellule Critères de la colonne Date envoi dans votre requête :
Entre #01/01/2004# et #31/12/2004#
La colonne Date envoi aura l'apparence suivante.

L'expression est utilisée pour déterminer si la date d'envoi est comprise dans la plage de dates que vous avez spécifiée. Notez que les valeurs de dates sont placées entre des signes dièse (#). Access traite une valeur comprise entre des signes dièse en tant que type de données Date/Heure.
Pour entrer des critères dans la grille de création de requête
- Dans la fenêtre Base de données, sous Objets, cliquez sur Requêtes.
-
Cliquez sur la requête, puis sur Modifier dans la fenêtre Base de données.
- Cliquez dans la cellule de critère dans la colonne pour laquelle vous souhaitez entrer des critères de correspondance.
- Tapez l'expression de critères ou cliquez sur le bouton Générateur
dans la barre d'outils pour créer une expression à l'aide du Générateur d'expression. Remarque Ne faites pas précéder l'expression de critères de l'opérateur =.
Si vous souhaitez disposer d'une zone plus grande pour entrer l'expression, appuyez sur MAJ+F2 pour afficher la fenêtre Zoom.

Dans la cellule de champ dans la grille de création d'une requête
On utilise une expression pour créer un champ calculé dans une requête. Par exemple, supposez que vous souhaitez afficher l'année d'envoi d'une commande dans le cadre d'une requête. Pour créer le champ calculé, vous devez placer l'expression suivante dans la cellule de champ d'une colonne vide dans votre requête :
Année: Format([Date envoi],"aaaa")
L'expression utilise la fonction Format pour extraire l'année du champ Date envoi et la mettre en forme comme nombre à quatre chiffres. Notez que le nom Année est affecté à la colonne résultante en faisant précéder l'expression de Année:.

Pour entrer un champ calculé en mode création de requête
- Dans la fenêtre Base de données, sous Objets, cliquez sur Requêtes.
-
Cliquez sur la requête, puis sur Modifier dans la fenêtre Base de données.
- Cliquez sur la cellule de champ dans la colonne où vous souhaitez créer le champ calculé.
- Tapez l'expression ou cliquez sur le bouton Générateur
dans la barre d'outils pour créer une expression à l'aide du Générateur d'expression. Vous devez commencer l'expression par un nom suivi d'un signe deux points. Par exemple, vous devez taper ExtendedPrice: pour commencer une expression qui crée un champ calculé nommé ExtendedPrice.
Dans la propriété Valide si d'un champ dans une table
Une expression peut également se révéler très utile dans la propriété Valide si d'un champ dans une table. Supposez que vous souhaitez appliquer une règle qui force le champ [Unités en stock] de la table Inventaire à contenir une valeur supérieure ou égale à zéro. En d'autres termes, le stock ne peut jamais être un nombre négatif. Pour cela, vous pouvez utiliser l'expression indiquée dans l'illustration suivante.

Pour entrer une règle de validation pour un champ d'une table
- Dans la fenêtre Base de données, sous Objets, cliquez sur Tables.
-
Cliquez sur la table, puis sur Modifier dans la fenêtre Base de données.
- Cliquez sur le nom du champ souhaité.
- Cliquez sur la boîte de propriétés Valide si.
- Tapez l'expression ou cliquez sur le bouton Générateur
situé à droite de la boîte de propriétés pour créer une expression à l'aide du Générateur d'expression. Remarque Ne faites pas précéder l'expression de l'opérateur = lorsque vous créez une règle de validation.
Le point essentiel dont il faut se souvenir lorsqu'on travaille avec des expressions de règle de validation est qu'elles doivent être résolues en Vrai pour que la valeur soit acceptée. Par conséquent, dans notre exemples, la valeur de [Unités en stock] doit être >=0. Dans le cas contraire, Access affiche le texte spécifié dans la boîte de propriétés Message si erreur. Si vous n'avez entré aucun texte dans la boîte de propriétés Message si erreur, Access affiche son propre message pour indiquer que la valeur que vous avez entrée est interdite par la règle de validation du champ.
Dans la propriété Valide si d'un contrôle
Vous pouvez également définir la propriété Valide si d'un contrôle. Par exemple, supposez que vous utilisez un formulaire pour entrer la plage de dates pour un état et que vous souhaitez vous assurer que la date de début n'est pas antérieure à #01/01/04#. Vous pouvez définir les propriétés Valide si et Message si erreur de la zone de texte où vous entrez la date de début de la manière suivante.
| Propriété |
Paramètre |
| Valide si |
>=#01/01/04# |
| Message si erreur |
Vous ne pouvez pas entrer de date antérieure au 01/01/04. |
Si vous essayez d'entrer une date antérieure au #01/01/04#, un message apparaît. Après avoir cliqué sur OK, vous revenez à la zone de texte.

Pour entrer une règle de validation pour un contrôle
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Cliquez sur le contrôle pour le sélectionner.
- Cliquez sur le bouton Propriétés dans la barre d'outils.
Access affiche la feuille de propriétés du contrôle.
- Cliquez sur l'onglet Toutes, puis sur la boîte de propriétés Règle de validation.
- Tapez l'expression ou cliquez sur le bouton Générateur
situé à droite de la boîte de propriétés pour créer une expression à l'aide du Générateur d'expression. Remarque Ne faites pas précéder l'expression de l'opérateur = lorsque vous créez une règle de validation.
- Éventuellement, modifiez la propriété Message si erreur.
- Fermez la feuille de propriétés.
Lorsque vous entrez une valeur interdite par la règle de validation, vous pouvez appuyer sur Échap pendant que le point d'insertion se trouve dans le contrôle afin de restaurer la valeur d'origine ou par défaut.
Ensuite, vous pouvez entrer une valeur qui satisfait la règle de validation.
Si la propriété Source contrôle de votre contrôle est un champ d'une table, il est souvent préférable de définir la propriété Valide si en plus de celle du contrôle. De cette façon, la règle est appliquée en permanence, quel que soit le formulaire ou la requête utilisé pour mettre à jour le champ.
Dans la propriété Valeur par défaut d'un champ d'une table
Vous pouvez utiliser une expression pour stocker la valeur par défaut d'un champ d'une table. Par exemple, supposez que vous souhaitez insérer automatiquement la date et l'heure dans le champ Date commande lorsque vous ajoutez un nouvel enregistrement. Vous pouvez utiliser une expression telle que la suivante.

L'expression utilise la fonction Maintenant pour insérer la date et l'heure dans le champ Date commande.
Pour entrer une valeur par défaut pour un champ d'une table
- Dans la fenêtre Base de données, sous Objets, cliquez sur Tables.
-
Cliquez sur la table, puis sur Modifier dans la fenêtre Base de données.
- Cliquez sur le nom du champ souhaité.
- Cliquez sur la boîte de propriétés Valeur par défaut.
- Tapez l'expression ou cliquez sur le bouton Générateur
situé à droite de la boîte de propriétés pour créer une expression à l'aide du Générateur d'expression.
Si un contrôle est lié à un champ dans une table et que le champ possède une valeur par défaut, la valeur par défaut du contrôle est prioritaire.
Dans la propriété Valeur par défaut d'un contrôle
Il est également courant d'utiliser une expression dans la propriété Valeur par défaut d'un contrôle. La propriété Valeur par défaut d'un contrôle se comporte de manière semblable à la propriété Valeur par défaut d'un champ d'une table. Par exemple, si vous souhaitez entrer la date actuelle en tant que valeur par défaut d'une zone de texte Date commande, vous pouvez utiliser une expression telle que la suivante.

Cette expression utilise la fonction Date pour retourner la date actuelle, mais pas l'heure. Si le contrôle de zone de texte est lié à un champ dans une table et que le champ possède une valeur par défaut, la valeur par défaut du contrôle est prioritaire. Il est souvent préférable de définir la propriété Valeur par défaut du champ dans la table car la valeur par défaut est toujours appliquée, à moins qu'elle ne soit supplantée par un contrôle.
Pour entrer une valeur par défaut pour un contrôle
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Cliquez sur le contrôle pour le sélectionner.
- Cliquez sur le bouton Propriétés dans la barre d'outils.
Access affiche la feuille de propriétés du contrôle.
- Cliquez sur l'onglet Toutes, puis sur la boîte de propriétés Valeur par défaut.
- Tapez l'expression ou cliquez sur le bouton Générateur
situé à droite de la boîte de propriétés pour créer une expression à l'aide du Générateur d'expression.
- Fermez la feuille de propriétés.
Dans la colonne Condition d'une macro
Dans certains cas, vous souhaiterez peut-être effectuer une action ou une série d'actions dans une macro uniquement si une condition spécifique est remplie. Par exemple, supposez que vous souhaitez qu'une action soit exécutée uniquement lorsque la valeur de la zone de texte Compteur est 10. Vous devez alors utiliser une expression pour définir la condition dans la colonne Condition de la macro.

Pour entrer une condition pour une action de macro
- Dans la fenêtre Base de données, sous Objets, cliquez sur Macros.
-
Cliquez sur la macro, puis sur Modifier dans la fenêtre Base de données.
- Cliquez sur la cellule Condition pour l'action de macro à sélectionner.
Si la colonne Condition n'est pas visible, dans le menu Affichage, cliquez sur Conditions.
- Tapez une expression conditionnelle.
- Fermez la macro.
Comme avec la propriété Valide si, l'expression de colonne Condition est une expression conditionnelle. Elle doit être résolue en Vrai ou Faux. L'action se produit uniquement lorsque la condition est Vrai.
Dans la fenêtre Trier et regrouper
On utilise la fenêtre Trier et regrouper pour définir des niveaux de groupes et des options de tri pour un état. Vous pouvez grouper sur un champ ou sur une expression. Par exemple, supposez que vous souhaitez grouper votre état par pays, puis par nom, puis par ID de commande. Si vos informations de noms sont stockées dans des champs séparés — Nom et Prénom —, vous devez grouper sur une expression semblable à celle illustrée ci-dessous.

Cette expression utilise l'opérateur & pour combiner des valeurs de texte (on appelle souvent cela la concaténation de chaînes). Pour plus d'informations sur la combinaison de valeurs de texte, consultez la section Combinaison de valeurs de texte
dans cet article.
Pour entrer une expression dans la fenêtre Trier et regrouper
- Dans la fenêtre Base de données, sous Objets, cliquez sur États.
-
Cliquez sur l'état, puis sur Modifier dans la fenêtre Base de données.
- Ouvrez l'état en mode Création.
- Dans le menu Affichage, cliquez sur Trier et grouper.
- Cliquez sur une cellule dans la colonne Champ/expression.
- Tapez une expression précédée de l'opérateur =.
Haut de la page
Utilisation du Générateur d'expression
Vous pouvez utiliser le Générateur d'expression pour vous aider à générer des expressions. Le Générateur d'expression est un outil que vous pouvez démarrer à partir de la plupart des emplacements où vous écrivez des expressions. Il offre un accès aisé aux noms des champs et des contrôles utilisés dans votre base de données, ainsi qu'à une grande partie des fonctions intégrées qui vous sont accessibles lors de l'écriture d'expressions. Vous pouvez utiliser le Générateur d'expression pour créer une expression à partir de rien ou vous pouvez sélectionner l'une des expressions prédéfinies pour afficher les numéros de pages, la date actuelle et la date et l'heure actuelles.

Fenêtre d'expression
La section supérieure du générateur contient une
fenêtre d'expression où vous construisez votre expression. Vous utilisez les trois colonnes de la section inférieure du générateur pour rechercher les éléments que vous pouvez coller dans la fenêtre d'expression. Vous pouvez également taper des parties de l'expression directement dans la fenêtre d'expression. Ainsi, vous construisez une expression en combinant de la frappe au clavier et des opérations de collage.
Boutons d'opérateurs
La section centrale du Générateur d'expression contient des boutons correspondant à des opérateurs couramment utilisés. Pour insérer un opérateur dans la fenêtre d'expression, cliquez sur le bouton approprié. Pour afficher une liste d'opérateurs que vous pouvez utiliser dans des expressions, cliquez sur le dossier
Opérateurs dans la colonne inférieure gauche, puis cliquez sur la catégorie souhaitée dans la colonne centrale. La colonne de droite répertorie alors tous les opérateurs de la catégorie sélectionnée. Pour insérer un opérateur, double-cliquez dessus ou sélectionnez-le et cliquez sur
Coller.
Éléments d'expression
La section inférieure contient trois colonnes :
- La colonne de gauche contient des dossiers qui répertorient les tables, requêtes, formulaires et états de votre base de données, ainsi que les fonctions intégrées et les fonctions définies par l'utilisateur disponibles, des constantes, des opérateurs et des expressions courantes.
- La colonne centrale répertorie des éléments ou des catégories d'éléments spécifiques pour le dossier sélectionné dans la colonne de gauche. Par exemple, si vous cliquez sur Fonctions intégrées dans la colonne de gauche, la colonne centrale répertorie des catégories de fonctions.
- La colonne de droite répertorie les valeurs (le cas échéant) des éléments sélectionnés dans les colonnes de gauche et centrale. Par exemple, si vous cliquez sur Fonctions intégrées dans la colonne de gauche, puis que vous cliquez sur une catégorie de fonctions dans la colonne centrale, la colonne de droite répertorie toutes les fonctions intégrées de la catégorie sélectionnée.
Vous construisez votre expression en tapant du texte dans la fenêtre d'expression et en collant des éléments à partir d'autres zones du générateur. Par exemple, vous pouvez cliquer dans la colonne inférieure gauche pour afficher l'un des objets de votre base de données, ainsi que les fonctions, constantes, opérateurs et expressions courantes. Lorsque vous cliquez sur un élément dans la colonne de gauche, les autres colonnes changent en conséquence. Par exemple, lorsque vous cliquez sur le nom d'une table dans la colonne de gauche, la colonne centrale répertorie les champs de cette table. Lorsque vous double-cliquez sur Fonctions puis que vous cliquez sur Fonctions intégrées, la colonne centrale affiche toutes les catégories de fonctions et la colonne de droite répertorie les fonctions de ces catégories. Lorsque vous double-cliquez pour insérer une fonction dans votre expression, la fonction et le texte indiquant les arguments requis par cette fonction apparaissent sous la forme d'espaces réservés dans la fenêtre d'expression. Vous pouvez alors remplacer ce texte par les valeurs d'arguments correctes.
Lorsque vous collez un identificateur dans votre expression, le Générateur d'expression insère seulement les parties de l'identificateur qui sont requises dans le contexte actuel. Par exemple, si vous démarrez le Générateur d'expression à partir de la feuille de propriétés du formulaire Clients, puis que vous collez un identificateur pour la propriété Visible du formulaire dans votre expression, le Générateur d'expression colle uniquement le nom de propriété Visible. Si vous utilisez cette expression en dehors du contexte du formulaire, vous devez inclure l'identificateur dans son intégralité : Formulaires![Clients].Visible.
Pour démarrer le Générateur d'expression dans une table, un formulaire ou un état
- Cliquez sur la zone d'argument d'action ou de propriété qui contiendra l'expression.
- Cliquez sur le bouton Générateur
à côté de la propriété.
Pour démarrer le Générateur d'expression dans une requête
- Cliquez sur la cellule dans la grille de création qui contiendra l'expression. Par exemple, cliquez sur la cellule Critères de la colonne où vous souhaitez fournir des critères ou cliquez sur la cellule Champ de la colonne où vous souhaitez créer un champ calculé.
- Cliquez sur le bouton Générateur dans la barre d'outils
.
On peut considérer le Générateur d'expression comme un outil facilitant la recherche et l'insertion d'objets dont il serait autrement difficile de se souvenir, tels que des noms d'identificateurs (par exemple des champs, des tables, des formulaires ou des requêtes) et des noms et arguments de fonctions.
Haut de la page
Utilisation d'expressions à des fins pratiques
Cette section décrit plusieurs manières d'utiliser des expressions pour résoudre des problèmes et calculer des informations nécessaires pour vos formulaires, états et tables.
« Horodatage » d'un nouvel enregistrement avec la date et l'heure actuelles
Dans certaines tables, il est important d'assurer le suivi de la date ou de la date et de l'heure d'ajout d'un enregistrement. Pour faire en sorte qu'Access insère automatiquement cette valeur, vous pouvez créer un champ avec le type de données Date/Heure et affecter à la propriété Valeur par défaut du champ la valeur Date() ou Maintenant(). La fonction Date retourne la date actuelle, telle que stockée dans l'horloge système de votre ordinateur. La fonction Maintenant retourne la date et l'heure actuelles.
Pour ajouter un champ de cachet de date et d'heure
- Dans la fenêtre Base de données, sous Objets, cliquez sur Tables.
-
Cliquez sur la table, puis sur Modifier dans la fenêtre Base de données.
- Cliquez dans la colonne Nom du champ, dans la première ligne vide disponible.
- Tapez un nom pour le champ, tel que DateAjout.
- Cliquez dans la colonne Type de données et sélectionnez Date/Heure.
- Cliquez sur l'onglet Général, puis cliquez sur la boîte de propriétés Valeur par défaut.
- Tapez Maintenant() ou Date(), puis appuyez sur la touche TAB.
- Fermez la table. Si Access vous invite à enregistrer les modifications, cliquez sur Oui.
Désormais, chaque fois que vous ajoutez un nouvel enregistrement à la table, Access insère automatiquement la date ou la date et l'heure dans le champ DateAjout.
Combinaison de valeurs de texte
Lorsque vous souhaitez combiner les valeurs de plusieurs champs de texte, vous pouvez utiliser le caractère &. Par exemple, vous pourriez avoir un formulaire Employés dans lequel vous souhaitez afficher le nom complet de l'employé dans l'en-tête de formulaire. Vous pouvez entrer le prénom et le nom de l'employé dans des zones de texte dans la section de détail.
Vous pouvez utiliser l'expression suivante pour afficher le nom complet d'un employé :
=[Prénom] & " " & [Nom]
Pour combiner les valeurs de texte de plusieurs contrôles, vous devez utiliser l'opérateur &. Tout ce que vous souhaitez insérer entre les valeurs — espace, ponctuation ou texte qui ne change pas — doit être placé entre guillemets. Dans cet exemple, la chaîne " " insère un espace entre le prénom et le nom de famille.
Pour ajouter une zone de texte avec une expression pour le nom de famille
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire ou l'état pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Données.
- Modifiez la propriété Source contrôle =[Prénom] & " " & [Nom], puis appuyez sur la touche TAB.
- Fermez la feuille de propriétés.
Certains enregistrements peuvent ne contenir aucune valeur dans un champ que vous entrez. La valeur absente porte le nom de valeur nulle. Lorsque vous utilisez l'opérateur & et qu'un champ ne contient aucune valeur, Access retourne une chaîne nulle pour ce champ. Par exemple, si l'enregistrement d'un employé contient uniquement un nom de famille, l'expression de l'exemple précédent retourne une chaîne nulle pour le champ Prénom, un espace et la valeur du champ Nom de famille.
Lorsque vous combinez des valeurs, vous souhaiterez peut-être inclure une valeur (telle qu'une virgule) seulement quand une valeur existe dans un champ particulier. Par exemple, supposez que vous avez une table Client et que vous souhaitez combiner les valeurs des champs Ville, Région et Code postal pour un état. Il se peut que certains enregistrements ne contiennent aucune valeur dans le champ Région. Dans ce cas, vous vous retrouvez avec une virgule indésirable avant le code postal si vous utilisez l'opérateur &.
Pour éliminer la virgule indésirable, vous pouvez utiliser l'opérateur plus (+), tel qu'illustré dans l'exemple d'expression suivant :
=([Ville] & (", " + [Région]) & " " & [Code postal])
L'opérateur + combine du texte de la même façon que l'opérateur &. Toutefois, l'opérateur + prend également en charge ce qu'on appelle la propagation de valeur nulle. Cela signifie que si l'un des composants d'une expression est nul, l'ensemble de l'expression l'est également. Dans l'exemple précédent, considérez la section (", " + [Région]). L'opérateur + étant utilisé, l'expression comprise entre parenthèses inclut une virgule uniquement s'il existe une valeur dans le champ Région. S'il n'existe aucune valeur, la propagation de valeur nulle est appliquée et l'ensemble de l'expression entre parenthèses est évaluée à une valeur nulle.
Création de contrôles calculés pour effectuer des calculs arithmétiques
Vous pouvez utiliser des expressions pour additionner, soustraire, multiplier et diviser les valeurs de plusieurs champs ou contrôles. Par exemple, supposez que vous enregistrez la date à laquelle un client doit recevoir une commande et la date d'envoi de la commande. Vous pouvez calculer si la commande a été expédiée en avance ou en retard (et de combien de jours) en soustrayant la valeur du champ Date envoi de la valeur du champ À livrer avant car Access est capable d'effectuer des calculs arithmétiques sur des dates.

Le résultat du calcul de date porte le nom d'intervalle. Cette valeur contient un composant « jours » à gauche de la virgule et un composant « heure » à droite de la virgule. Si la valeur retournée est un nombre positif, vous savez avec combien de jours d'avance la commande a été expédiée. Si la valeur est négative, vous savez avec combien de jours de retard la commande a été expédiée. Si la valeur est égale à 0, vous savez que la commande a été livrée en temps voulu.
Pour ajouter une zone de texte avec une expression afin de calculer le nombre de jours d'avance ou de retard
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire ou l'état pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Données.
- Modifiez la propriété Source contrôle =[À livrer avant]-[Date envoi], puis appuyez sur la touche TAB.
- Fermez la feuille de propriétés.
Lorsque vous utilisez l'opérateur +, –, *, / ou \ pour effectuer un calcul sur deux valeurs et qu'une de ces valeurs est nulle (à savoir, aucune valeur n'a été entrée), la valeur de l'expression est également nulle. Par exemple, si l'une des dates de l'expression précédente est nulle, la valeur de l'ensemble de l'expression est nulle. Sur un état, cela provoque la présence d'un espace. Si vous souhaitez remplacer la valeur nulle par un 0, vous pouvez utiliser la fonction Nz pour convertir la valeur nulle en zéro. Par exemple :
=Nz([À livrer avant]-[Date envoi],0)
Remarque Vous pouvez concevoir les champs de votre table de sorte que les utilisateurs ne puissent pas entrer de valeur nulle. Lorsque vous créez la table, affectez à la propriété Null interdit de ce champ la valeur Oui. Vous devez également affecter à la propriété Valeur par défaut de ce champ une valeur non nulle.
Ajout des valeurs dans deux contrôles
Fréquemment, vous souhaiterez également ajouter les valeurs dans deux contrôles. Par exemple, pour calculer le coût total d'une commande, vous ajoutez les valeurs des contrôles Sous-total et Port, comme illustré ci-dessous.

Pour calculer le total de la commande, vous créez une zone de texte dans la section de détail du formulaire Commandes.
Pour ajouter une zone de texte avec une expression qui calcule un total
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire ou l'état pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Tout.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
Total |
| Source contrôle |
=[Sous-total]+[Port] |
| Format |
Monétaire |
- Fermez la feuille de propriétés.
Multiplication de deux valeurs afin de calculer la TVA
Supposez que vous devez calculer la TVA pour une commande et que le taux de TVA est stocké dans le contrôle TVA. Vous prenez la valeur du contrôle Sous-total et vous la multipliez par la valeur du contrôle TVA pour calculer la taxe.
Pour calculer la TVA, vous créez une zone de texte dans la section de détail du formulaire Commandes.
Pour ajouter une zone de texte avec une expression pour calculer la TVA
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires ou États.
-
Cliquez sur le formulaire ou l'état, puis cliquez sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire ou l'état pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Tout.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
TVA |
| Source contrôle |
=[Sous-total]*[Taux TVA] |
| Format |
Monétaire |
- Fermez la feuille de propriétés.
Addition et comptage
Fréquemment, vous devez calculer la somme des valeurs stockées dans un groupe d'enregistrements. Par exemple, il se peut que vous deviez calculer un total de groupe pour le pied de groupe dans un état ou un sous-total de commande pur les éléments de ligne sur un formulaire. Ou encore il se peut que vous deviez compter le nombre d'éléments plutôt que les additionner. Pour calculer une somme pour un groupe d'enregistrements, vous utilisez la fonction Somme. Pour compter un groupe d'enregistrements, vous utilisez la fonction Compte.
Par exemple, pour compter le nombre de commandes dans un état qui répertorie les commandes groupées par client, vous pouvez utiliser l'expression suivante :
=Compte([N° commande])
Vous pouvez utiliser des noms de champs dans l'expression d'argument pour les fonctions Somme et Compte, mais pas des noms de contrôles. Les noms de champs peuvent provenir d'une table ou d'une requête. Vous pouvez même utiliser le nom d'un champ calculé issu d'une requête. Toutefois, lorsque vous souhaitez obtenir le total des valeurs d'un champ calculé, vous devez répéter l'expression qui est utilisée dans le contrôle calculé dans la fonction.
Lorsque vous souhaitez faire référence à la même expression plusieurs fois sur un formulaire ou si vous allez utiliser une fonction, telle que Somme, vous pourriez envisager d'inclure l'expression dans la requête sous-jacente du formulaire. De cette façon, le calcul peut être effectué dans la requête plutôt que dans le formulaire. Il est souvent plus rapide d'effectuer un calcul dans une requête.
Calcul d'un sous-total de commande sur un sous-formulaire
Lorsque vous créez un formulaire de commande, vous utilisez souvent un formulaire principal et un sous-formulaire, liés par un champ commun tel que N° commande. Le formulaire principal contient des détails de commande, tels que des informations « facturer à » et « expédier à » et le sous-formulaire contient des détails sur les éléments de ligne qui ont été commandés, tels que le produit, la quantité et le prix unitaire. Les informations du formulaire principal proviennent d'une requête qui inclut la table Commandes. Les informations du sous-formulaire proviennent d'une requête qui inclut la table Détails commandes.
Si vous basez le sous-formulaire sur une requête qui inclut un champ calculé pour calculer le prix étendu, vous pouvez additionner les valeurs du champ ExtendedPrice afin de calculer le sous-total. Pour calculer le sous-total de la commande, vous devez créer une zone de texte dans le pied de formulaire du sous-formulaire Commandes.

Pour ajouter une zone de texte avec une expression qui calcule le sous-total de commande sur un sous-formulaire
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires.
-
Cliquez sur le sous-formulaire, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Tout.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
Sous-total commande |
| Source contrôle |
=Somme([Extended Price]) |
| Format |
Monétaire |
- Fermez la feuille de propriétés.
Bien que la zone de texte du sous-formulaire calcule le sous-total de la commande, vous affichez la valeur uniquement sur le formulaire principal. Pour masquer la zone de texte sur le sous-formulaire, vous la placez dans le pied de formulaire du sous-formulaire et vous affectez à la propriété Affichage par défaut du sous-formulaire la valeur Feuille de données. Access n'affiche pas d'en-tête ni de pied de formulaire lorsque vous utilisez un formulaire en mode Mode Feuille de données. Pour finir, vous insérez le sous-formulaire dans le formulaire principal.
En général un sous-formulaire ne fonctionne pas correctement en tant que formulaire indépendant. Les sous-formulaires sont souvent conçus pour dépendre d'une valeur contenue dans le formulaire principal. Access limite le sous-formulaire aux enregistrements appropriés uniquement après que vous avez inséré le sous-formulaire dans le formulaire principal et établi le champ qui lie les deux formulaires (tel que N° commande). Par exemple, lorsque vous utilisez un formulaire Commandes avec un sous-formulaire, le champ N° commande sur le formulaire principal limite les enregistrements dans le sous-formulaire à ceux qui ont le même numéro que N° commande.
Référence au sous-total de commande sur un formulaire principal
Les contrôles d'un formulaire et d'un sous-formulaire peuvent faire référence les uns aux autres. Pour faire référence à une valeur d'un sous-formulaire, on utilise une expression, comme illustré ci-dessous.

Nom du contrôle de sous-formulaire sur le formulaire principal
Propriété Formulaire, qui donne accès aux contrôles et aux propriétés du sous-formulaire.
Nom du contrôle de zone de texte sur le sous-formulaire.
Pour afficher le sous-total de la commande, créez une zone de texte dans la section de détail du formulaire Commandes.
Pour afficher le sous-total d'un sous-formulaire dans une zone de texte dans la section de détail du formulaire Commandes
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires.
-
Cliquez sur le formulaire Commandes, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur dans la section de détails du formulaire pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Tout.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
Sous-total |
| Source contrôle |
=[Sous-formulaire commandes].Formulaire![Sous-total commande] |
| Format |
Monétaire |
- Fermez la feuille de propriétés.
Rechercher une valeur dans une table
Lors de la création d'un formulaire, vous souhaiterez peut-être afficher une valeur à partir d'une table ou d'une requête autre que celle à laquelle votre formulaire est lié. Par exemple, vous pourriez avoir un formulaire Produits lié à la table Produits. Après avoir créé le formulaire, vous décidez de faire en sorte qu'il affiche le nom du contact chez le fournisseur, qui provient de la table Fournisseurs.
Vous pouvez rechercher et afficher une valeur d'une autre table ou requête à l'aide de la fonction RechDom. Vous fournissez trois arguments à la fonction RechDom :
- le nom du champ dont vous souhaitez rechercher la valeur ;
- la table ou la requête où se trouve le champ ;
- les critères à utiliser pour rechercher l'enregistrement.
Pour ajouter le contact du fournisseur, ouvrez le formulaire Produits en mode Création, puis ajoutez une zone de texte avec l'étiquette Nom contact. L'expression à utiliser pour cette zone de texte est la suivante :
=RechDom("[Nom contact]","[Fournisseurs]","[N° fournisseur]=" & Formulaires!Produits!N° fournisseur)
Pour ajouter la zone de texte du contact de fournisseur
- Dans la fenêtre Base de données, sous Objets, cliquez sur Formulaires.
-
Cliquez sur le formulaire Commandes, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur sur le formulaire pour créer la zone de texte.
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Toutes.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Étiquette |
Nom contact |
| Source contrôle |
=RechDom("[Nom contact]","[Fournisseurs]","[N° fournisseur]=" & Formulaires!Produits!N° fournisseur) |
- Fermez la feuille de propriétés.
Cette expression effectue une recherche dans la table Fournisseurs et retourne le nom du contact dont la référence de fournisseur correspond à la valeur du contrôle N° fournisseur sur le formulaire Produits. Notez la manière dont l'opérateur & est utilisé pour construire le troisième argument. L'une des erreurs courantes à éviter est l'insertion de guillemets autour de l'ensemble de l'argument ; les guillemets doivent être insérés autour du texte qui se trouve avant l'opérateur &.
Remarque En guise d'alternative à l'utilisation de la fonction RechDom, vous pouvez modifier la requête sous-jacente de façon à inclure les informations nécessaires. L'utilisation d'une requête s'avère souvent plus efficace.
Impression de la date qui est imprimée sur un état
Sur de nombreux états, vous souhaiterez peut-être imprimer la date de génération de l'état. Pour faire en sorte qu'Access insère la date à votre intention, utilisez la fonction Maintenant ou Date. La fonction Maintenant retourne la date et l'heure actuelles, telles que stockées dans l'horloge de votre ordinateur. La fonction Date retourne uniquement la date actuelle. Vous pouvez mettre en forme le résultat de ces fonctions avec l'un quelconque des formats de date et d'heure disponibles.
Supposez que vous souhaitez imprimer un état de facture avec la date de facture imprimée au format Date, réduit (par exemple, 31-Déc-04). Tapez l'expression =Date() dans la propriété Source contrôle de la zone de texte ou dans la zone de texte elle-même.
Pour ajouter la date d'impression à un état
- Dans la fenêtre Base de données, sous Objets, cliquez sur États.
-
Cliquez sur l'état, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur dans l'état pour créer la zone de texte.
Remarque Si le pied de page n'est pas visible, dans le menu Affichage, cliquez sur En-tête/Pied de page
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Tout.
- Définissez les valeurs de propriétés comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
Date imprimée |
| Source contrôle |
=Date() |
| Format |
Date, réduit |
- Fermez la feuille de propriétés.
Impression du numéro de page sur un état
Lors de la création d'un état contenant plusieurs pages, vous souhaiterez sans doute ajouter des numéros de pages. Vous pouvez pour cela utiliser la propriété Page, qui numérote automatiquement les pages lorsque vous affichez un aperçu avant impression ou lorsque vous imprimez l'état. La propriété Page est disponible uniquement lors de l'aperçu avant impression ou lors de l'impression d'un état ; elle n'apparaît donc pas dans la feuille de propriétés.
La propriété Page de la propriété Source contrôle d'une zone de texte s'utilise tout comme une fonction, telle que Maintenant ou Date. Placez la zone de texte dans l'en-tête ou le pied de page de l'état. (Notez qu'il ne faut pas inclure de parenthèses après la propriété Page.)

Vous pouvez construire une expression qui utilise à la fois les propriétés Page et Pages. La propriété Pages retourne le nombre total de pages d'un état. Par exemple, l'expression suivante produit une numérotation des pages au format Page 1 sur 10.
="Page " & [Page] &" sur " & [Pages]
Pour ajouter le style de numérotation des pages précédent à un état
- Dans la fenêtre Base de données, sous Objets, cliquez sur États.
-
Cliquez sur l'état, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Zone de texte.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur dans la section de pied de page de l'état pour créer la zone de texte.
Remarque Si le pied de page n'est pas visible, dans le menu Affichage, cliquez sur En-tête/Pied de page
- Cliquez sur la zone de texte pour la sélectionner.
- Dans le menu Affichage, cliquez sur Propriétés, puis sur l'onglet Données.
- Modifiez la valeur de la zone de propriété Source contrôle en ="Page " & [Page] &" sur " & [Pages].
- Fermez la feuille de propriétés.
Remarque Dans le Générateur d'expression, Access propose quelques expressions courantes que vous pouvez utiliser pour la numérotation des pages.
Impression d'une partie d'une valeur sur un état
Si les premiers ou derniers caractères d'un champ ont une signification particulière, vous pouvez classer un état en fonction de ces caractères. Par exemple, si les deux premiers caractères d'un code d'identification de produit indiquent le type de produit, vous pouvez grouper les produits selon les deux premiers caractères du code, puis identifier chaque groupe en imprimant les caractères dans un en-tête de groupe.
Vous devez utiliser la fonction Gauche pour extraire les n premiers caractères d'une valeur dans un champ Texte et la fonction Droite pour extraire les n derniers caractères. Dans les deux cas, le premier argument est le nom du champ ou l'expression de texte et le deuxième argument est le nombre de caractères à extraire.
Le tableau suivant contient des expressions qui emploient ces fonctions.
| Si la valeur de Réf pièce est |
Cette expression |
Retourne |
| AA105 |
=Gauche([PartID],2) |
AA |
| AA105 |
=Droite([PartID],3) |
105 |
Utilisation de séparateurs de lettres dans une liste alphabétique
Pour accélérer l'identification dans une liste de produits, vous pouvez grouper les produits par la première lettre de leur nom et imprimer la lettre dans un en-tête de groupe, comme illustré ci-dessous.

Pour commencer un nouveau groupe chaque fois que la première lettre du nom de produit change, puis trier les produits par ordre alphabétique dans chaque groupe, définissez les propriétés de la fenêtre Trier et regrouper comme illustré dans le tableau suivant.
| Champ/expression |
Ordre de tri |
En-tête de groupe |
Pied de groupe |
Regrouper sur |
Intervalle |
Section insécable |
| Nom produit |
Croissant |
Oui |
Oui |
Premiers caractères |
1 |
Groupe entier |
| Nom produit |
Croissant |
Non |
Non |
Chaque valeur |
1 |
Non |
Pour afficher la fenêtre Trier et regrouper
- Ouvrez l'état en mode Création.
- Dans le menu Affichage, cliquez sur Trier et grouper (ou cliquez sur Trier et grouper
dans la barre d'outils).
Pour imprimer uniquement la première lettre du nom au début de chaque nouveau groupe, utilisez l'expression suivante dans la zone de texte dans l'en-tête Nom produit :
=Gauche([Nom produit],1)
Impression de l'équivalent numérique
Vous pouvez classer les enregistrements d'un état par les valeurs numériques d'une période donnée — telle qu'une année, un trimestre, un mois ou une semaine. Par exemple, une année est divisée en 53 semaines calendaires. (Les première et dernière semaines de l'année sont souvent des semaines partielles). Par exemple, la valeur numérique de la semaine allant de 18 décembre 1994 au 24 décembre 1994 est 52. Grâce à ces valeurs numériques, vous pouvez grouper les commandes envoyées selon la semaine de l'année.
Pour déterminer la valeur numérique d'une date, on utilise la fonction PartDate. Le format de cette fonction est le suivant :
PartDate(intervalle, date)
L'argument intervalle est l'abréviation de la partie de la date à retourner. Voici quelques exemples d'abréviations valides : « aaaa » pour une année à quatre chiffres, « t » pour un trimestre calendaire et « m » pour un mois. L'argument date est un nom de champ ou une date littérale, telle que « 01-Jul-94 ».
Remarque Éventuellement, vous pouvez ajouter deux arguments à la fonction PartDate — un pour le premier jour de la semaine et l'autre pour la première semaine de l'année. Dans ces arguments, vous pouvez accepter les valeurs qui sont définies par les options d'affichage firstweekday et firstweek ou vous pouvez spécifier vos propres valeurs.
Le tableau suivant répertorie des exemples de résultats retournés pour un champ nommé « Vacances ». Le champ Jours fériés peut contenir les jours fériés dans les pays où votre société fait des affaires.
| Si la valeur de Vacances est |
Cette expression |
Retourne |
| 01-Jan-94 |
=PartDate("s",[Vacances]) |
7 (jour de la semaine) |
| 31-Déc-94 |
=PartDate("ss",[Vacances]) |
53 (semaine de l'année) |
| 31-Déc-94 |
=PartDate("aaaa",[Vacances]) |
1994 (année à quatre chiffres) |
Pour en savoir plus sur la création d'état groupés, consultez l'article Créer un état groupé ou de synthèse.
Comparaison des résultats de plusieurs années
Lorsque vous souhaitez analyser les résultats des ventes de plusieurs années, il est pratique de grouper les résultats par période, par exemple par trimestre ou par mois. Cela vous permet de pouvoir comparer rapidement les performances d'une période dans une année à celles de la même période une autre année. Par exemple, supposez que vous souhaitez obtenir un état Récapitulatifs des ventes par trimestre qui indique le nombre de commandes expédiées et les totaux des ventes.

Pour créer les en-têtes et les pieds de groupes et spécifier l'ordre de tri de cet état, vous définissez les propriétés de la fenêtre Trier et regrouper comme illustré dans le tableau ci-dessous. Notez que vous utilisez une expression afin de grouper en fonction du trimestre d'envoi des commandes.
| Champ/expression |
Ordre de tri |
En-tête de groupe |
Pied de groupe |
Regrouper sur |
Intervalle |
Section insécable |
=PartDate("t", [Date envoi]) |
Croissant |
Oui |
Oui |
Chaque valeur |
1 |
Oui |
| Date envoi |
Croissant |
Non |
Oui |
Année |
1 |
Non |
| Date envoi |
Croissant |
Non |
Non |
Chaque valeur |
1 |
Non |
| N° commande |
Croissant |
Non |
Non |
Chaque valeur |
1 |
Non |
Pour afficher la fenêtre Trier et regrouper
- Ouvrez l'état en mode Création.
- Dans le menu Affichage, cliquez sur Trier et grouper (ou cliquez sur Trier et grouper
dans la barre d'outils).
Pour imprimer le numéro de trimestre au début d'un nouveau groupe, vous devez placer une zone de texte dans l'en-tête de groupe à l'aide de la même expression que celle utilisée dans la fenêtre Trier et regrouper :
=PartDate("t", [Date envoi])
Calcul de totaux d'éléments de lignes
Supposez que vous souhaitez obtenir un état de facture affichant des informations relatives à une commande. Vous devez calculer le prix étendu (le total des ventes pour chaque produit) des éléments de lignes. Vous créez tout d'abord une requête qui fournit les données pour l'état. Vous incluez dans cette requête tous les champs requis de toutes les tables requises, telles que la table Commandes, la table Détails commandes et la table Clients. Vous pouvez ensuite créer, dans la grille de création de la requête, un champ calculé qui calcule le prix étendu pour chaque produit figurant sur la facture.
Pour créer un champ calculé
- Dans la fenêtre Base de données, sous Objets, cliquez sur Requêtes.
-
Cliquez sur la requête, puis sur Modifier dans la fenêtre Base de données.
- Cliquez sur la ligne Champ d'une colonne vide dans la grille de création de la requête.
- Tapez un nom, un signe deux points (:) et une expression dans la cellule Champ. Pour calculer le prix étendu, vous pouvez utiliser une expression telle que la suivante :
ExtendedPrice: CMonnaie([Détails commandes].Prix unitaire*[Quantité]*(1-[Remise])/100)*100
Notez que lorsque vous créez un champ calculé dans la grille de création de la requête, vous ne devez pas faire précéder l'expression de l'opérateur =.
Identification des commandes expédiées en retard
Dans le meilleur des cas, les commandes sont envoyées à l'heure. Parfois, certaines commandes peuvent être expédiées après la date requise et vous souhaitez les identifier sur un état. Pour marquer toutes les commandes expédiées en retard sur un état de suivi d'envoi, vous pouvez imprimer une coche dans une case à cocher libellée Envoyé en retard. La plupart des commandes étant envoyées en temps voulu, la coche est plus facile à remarquer que du texte indiquant À l'heure ou En retard.
L'expression pour cet état compare la valeur du champ Date envoi à celle du champ À livrer avant. Si la valeur du champ Date envoi est supérieure (à savoir, une date antérieure) à celle du champ À livrer avant, l'expression retourne la valeur Vrai et la case à cocher sur l'état est activée. Si la valeur est Faux, la case à cocher est désactivée.
Pour ajouter la case à cocher Envoyé en retard à un état
- Dans la fenêtre Base de données, sous Objets, cliquez sur États.
-
Cliquez sur l'état, puis sur Modifier dans la fenêtre Base de données.
- Dans la boîte à outils, cliquez sur l'outil Case à cocher.
Remarque Si la boîte à outils n'est pas affichée, cliquez dans le menu Affichage sur Boîte à outils.
-
Faites glisser le pointeur dans la section de détails de l'état pour créer la case à cocher.
- Cliquez sur la case à cocher pour la sélectionner.
- Dans le menu Affichage, sélectionnez Propriétés, puis cliquez sur l'onglet Tout.
- Définissez les propriétés de la case à cocher comme indiqué dans le tableau suivant.
| Propriété |
Paramètre |
| Nom |
Envoyé en retard |
| Source contrôle |
=[Date envoi]>[À livrer avant] |
| Visible |
Oui |
- Fermez la feuille de propriétés.
Haut de la page
Tableau d'opérateurs
Access prend en charge différents opérateurs, y compris les opérateurs arithmétiques tels que +, -, * (multiplication), / (division), des opérateurs de comparaison pour la comparaison de plusieurs valeurs, des opérateurs de texte pour la concaténation de texte, des opérateurs logiques pour la détermination de valeurs vrai ou faux, ainsi que d'autres opérateurs spécifiques à Access. Pour plus de détails sur l'utilisation de ces opérateurs, consultez les sections suivantes.
Opérateurs arithmétiques
On utilise des opérateurs arithmétiques pour calculer une valeur à partir de plusieurs nombres ou pour modifier le signe d'un nombre de positif en négatif.
| Opérateur |
But |
Exemple |
| + |
Additionner deux nombres. |
[Sous-total]+[TVA] |
| - |
Rechercher 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. |
[Total]/[Nbre élément] |
| \ |
Arrondir les deux nombres en entiers, puis diviser le premier nombre par le deuxième. Tronquer le résultat en un nombre entier. |
[Réservé]\[Chambres] |
| Mod |
Diviser le premier nombre par le deuxième et retourner uniquement le reste. |
[Réservé] Mod [Chambres] |
| ^ |
Élever un nombre à la puissance d'un exposant. |
Nombre ^ Exposant |
Opérateurs de comparaison
On utilise des opérateurs de comparaison pour comparer des valeurs et retourner un résultat vrai, faux ou nul.
| Opérateur |
But |
| < |
Déterminer si la première valeur est inférieure à la deuxième. |
| <= |
Déterminer si la première valeur est inférieure ou égale à la deuxième. |
| > |
Déterminer si la première valeur est supérieure à la deuxième. |
| >= |
Déterminer si la première valeur est supérieure ou égale à la deuxième. |
| = |
Déterminer si la première valeur est égale à la deuxième. |
| <> |
Déterminer si la première valeur n'est pas égale à la deuxième. |
Dans tous les cas, si la première ou la deuxième valeur est nulle, le résultat est également nul. Nul représentant une valeur inconnue, le résultat de toute comparaison avec nul est également inconnu.
Opérateurs logiques
On utilise des opérateurs logiques pour combiner plusieurs valeurs et retourner un résultat vrai, faux ou nul. On les appelle également opérateurs booléens.
| Opérateur |
Utilisation |
Description |
| Et |
Expr1 Et Expr2 |
Vrai lorsque Expr1 et Expr2 sont vrais. |
| Ou |
Expr1 Ou Expr2 |
Vrai lorsque Expr1 ou Expr2 est vrai. |
| Eqv |
Expr1 Eqv Expr2 |
Vrai lorsque Expr1 et Expr2 sont tous deux vrais ou lorsque Expr1 et Expr2 sont tous deux faux. |
| Pas |
Pas Expr |
Vrai lorsque Expr n'est pas vrai. |
| Ou_X |
Expr1 Ou_X Expr2 |
Vrai lorsque Expr1 est vrai ou lorsque Expr2 est vrai, mais pas les deux. |
Opérateurs de concaténation
On utilise des opérateurs de concaténation pour combiner deux valeurs de texte en une seule.
| Opérateur |
Utilisation |
Description |
| & |
chaîne1 & chaîne2 |
Combine deux chaînes pour n'en former qu'une seule. |
| + |
chaîne1 + chaîne2 |
Combine deux chaînes pour n'en former qu'une seule et propage les valeurs nulles. |
Opérateurs spéciaux
Les opérateurs spéciaux s'utilisent comme décrit dans le tableau suivant.
| Opérateur |
Description |
Pour plus d'informations |
| Is (Not) Null |
Détermine si une valeur est Null ou Not Null. |
|
| Comme "modèle" |
Fait correspondre des valeurs de chaîne à l'aide d'opérateurs génériques tels que ? et *. |
Opérateur Comme |
| Entre val1 et val2 |
Détermine si une valeur numérique ou de date est comprise dans une plage donnée. |
Opérateur Entre...Et |
| In(chaîne1,chaîne2...) |
Détermine si une valeur de chaîne est comprise dans un ensemble de valeurs de chaîne. |
Opérateur In |
Haut de la page