Exemples d’expressions

Cet article fournit des exemples d’expressions dans Access. Une expression est une combinaison d’opérateurs mathématiques et logiques, de constantes, de fonctions, de champs de table, de contrôles et de propriétés dont le résultat est une valeur unique. Vous pouvez utiliser des expressions dans Access pour calculer des valeurs, valider des données et définir une valeur par défaut pour un champ ou un contrôle.

Remarque : bien que cet article vous décrit les étapes de base pour la création d’expressions, il ne s’agit pas d’un guide complet vous permettant d’utiliser tous les outils fournis par Access pour la création d’expressions. Pour plus d’informations sur la création d’expressions, voir Créer une expression.

Contenu de cet article

Comprendre les expressions

Exemples d’expressions utilisés dans les états et les rapports

Exemples d’expressions utilisés dans les requêtes et les filtres

Exemples d’expressions de valeur par défaut

Exemples d’expressions de règle de validation de champs

Exemples d’expressions de condition de macro

Comprendre les expressions

Dans Access, le terme expression est synonyme de formule. Une expression est composée d’un certain nombre d’éléments possibles que vous pouvez utiliser, seuls ou combinés, pour produire un résultat. Ces éléments incluent :

  • Identificateurs : il s’agit des noms des champs de table ou des contrôles inclus dans les formulaires ou les états, ou des propriétés de ces champs ou contrôles

  • Opérateurs, tels que + (plus) ou - (moins)

  • Fonctions, telles que SOMME ou MOYENNE

  • Constantes : il s’agit de valeurs immuables (telles que les chaînes de texte ou les nombres qui ne sont pas calculés par une expression).

Vous pouvez utiliser les expressions de plusieurs manières : effectuer un calcul, récupérer la valeur d’un contrôle, renseigner les critères d’une requête, etc.

Pour plus d’informations sur la création d’expressions, voir Créer une expression.

Haut de la page

Exemples d’expressions utilisés dans les états et les rapports

Les tableaux de cette section contiennent des exemples d’expressions vous permettant de calculer une valeur dans un contrôle situé dans un formulaire ou un état. Pour créer un contrôle calculé, vous devez entrer une expression dans la propriété SourceContrôle du contrôle, plutôt que dans une requête ou un champ de table.

Les étapes suivantes vous expliquent comment entrer une expression dans un contrôle de zone de texte dans un formulaire ou état existant.

Créer un contrôle calculé

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou l’état que vous souhaitez modifier, puis cliquez sur Mode création Image du bouton dans le menu contextuel.

  2. Dans le formulaire ou l’état, cliquez avec le bouton droit sur le contrôle de zone de texte que vous voulez modifier (et non sur l’étiquette associée à la zone de texte), puis cliquez sur Propriétés dans le menu contextuel.

  3. Le cas échéant, cliquez sur l’onglet Toutes ou Donnée. Ces deux onglets contiennent la propriété Source contrôle.

  4. Cliquez sur la zone en regard de la propriété Source contrôle, puis entrez votre expression. Par exemple, vous pouvez copier-coller une expression à partir de la colonne Expression du tableau figurant dans la section suivante.

  5. Fermez la feuille de propriétés.

Expressions qui permettent de combiner ou de manipuler du texte

Les expressions répertoriées dans le tableau suivant utilisent les opérateurs & (esperluette) et + (plus) pour combiner des chaînes de texte, des fonctions intégrées permettant de manipuler une chaîne de texte, ou pour effectuer une opération sur du texte afin de créer un contrôle calculé.

Expression

Résultat

="N/A"

Affiche N/A.

=[Prénom] & " " & [Nom]

Affiche les valeurs stockées dans les champs de table Prénom et Nom. Dans cet exemple, l’opérateur & sert à combiner le champ Prénom, un caractère d’espace (placé entre guillemets), puis le champ Nom.

=Gauche([NomProduit], 1)

Utilise la fonction Gauche pour afficher le premier caractère de la valeur d’un champ ou d’un contrôle intitulé NomProduit.

=Droite([CodeBien], 2)

Utilise la fonction Droite pour afficher les 2 derniers caractères de la valeur d’un champ ou d’un contrôle intitulé CodeBien.

=Supprespace([Adresse])

Utilise la fonction SupprEspace pour afficher la valeur du contrôle Adresse, en supprimant les espaces de début et de fin.

=VraiFaux(EstNull([Région]), [Ville] & " " & [CodePostal], [Ville] & " " & [Région] & " " & [CodePostal])

Utilise la fonction VraiFaux pour afficher les valeurs des contrôles Ville et CodePostal si la valeur du contrôle Région est null ; sinon, affiche les valeurs des contrôles Ville, Région et CodePostal, séparées par des espaces.

=[Ville] & (" " + [Région]) & " " & [CodePostal]

Utilise l’opérateur + et la propagation null pour afficher les valeurs des contrôles Ville et CodePostal si la valeur du champ ou du contrôle Région est null ; sinon, affiche les valeurs des champs ou contrôles Ville, Région et CodePostal, séparées par des espaces.

La propagation null permet d’indiquer que si un composant d’une expression a la valeur null, l’ensemble de l’expression a également la valeur null. L’opérateur + prend en charge la propagation null, contrairement à l’opérateur &.

Expressions dans les en-têtes et pieds de page

Les propriétés Page et Pages vous permettent d’afficher ou d’imprimer des numéros de page dans les formulaires ou les états. Les propriétés Page et Pages sont uniquement disponibles lors de l’impression ou de l’aperçu avant impression. Elle n’apparaissent donc pas dans la feuille de propriétés du formulaire ou de l’état. En règle générale, vous utilisez ces propriétés en plaçant une zone de texte dans la section d’en-tête ou de pied de page du formulaire ou de l’état, puis en utilisant une expression, telle que celles figurant dans le tableau suivant.

Pour plus d’informations sur l’utilisation d’en-têtes et de pieds de page dans les formulaires et les états, voir Insérer des numéros de page dans un formulaire ou un état.

Expression

Exemple de résultat

=[Page]

1

="Page " & [Page]

Page 1

="Page " & [Page] & " sur " & [Pages]

Page 1 sur 3

=[Page] & " page(s)" & " sur " & [Pages]

1 page(s) sur 3

=[Page] & "/" & [Pages] & " pages"

1/3 pages

=[Pays/région] & " - " & [Page]

Royaume-Uni - 1

=Format([Page], "000")

001

="Imprimé le : " & Date()

Imprimé le : 31/12/07

Expressions qui effectuent des opérations arithmétiques

Vous pouvez utiliser des expressions arithmétiques pour additionner, soustraire, multiplier et diviser les valeurs incluses dans deux champs ou contrôles, ou plus. Vous pouvez également utiliser des expressions pour effectuer des opérations arithmétiques sur des dates. Par exemple, supposons que vous avez un champ de table Date/Heure intitulé DateRequise. Dans le champ, ou dans un contrôle lié au champ, l’expression =[DateRequise] - 2 renvoie une valeur date/heure égale à deux jours avant les valeurs actuelles incluses dans le champ DateRequise.

Expression

Résultat

=[Sous-total]+[Tranport]

Somme des valeurs des champs ou contrôles Sous-total et Transport.

=[DateRequise]-[DateExpédition]

Intervalle entre les valeurs de date incluses dans les champs ou contrôles DateRequise et DateExpédition.

=[Prix]*1,06

Produit de la valeur du champ ou du contrôle Prix et de 1,06 (ajoute 6 % à la valeur Prix).

=[Quantité]*[Prix]

Produit des valeurs des champs ou contrôles Quantité et Prix.

=[TotalEmployés]/[TotalPaysRégion]

Quotient des valeurs des champs ou contrôles TotalEmployés et TotalPaysRégion.

Remarque : Lorsque vous utilisez un opérateur arithmétique (+, -, * et /) dans une expression et que la valeur de l’un des contrôles dans l’expression est null, le résultat de l’ensemble de l’expression est null (également connu sous le nom de propagation null). Si l’un des enregistrements inclus dans les contrôles que vous utilisez dans l’expression risque d’avoir la valeur null, vous pouvez empêcher l’utilisation de la propagation null en convertissant la valeur null en zéro à l’aide de la fonction Nz. Par exemple, =Nz([Sous-total])+Nz([Transport]).

Pour plus d’informations sur la fonction, voir Fonction Nz.

Expressions qui font référence à des valeurs dans d’autres champs ou contrôles

Parfois, vous avez besoin d’utiliser une valeur qui existe autre part, par exemple, dans un champ ou un contrôle figurant dans un autre formulaire ou état. Vous pouvez utiliser une expression pour renvoyer la valeur d’un autre champ ou contrôle.

Le tableau suivant répertorie des exemples d’expressions que vous pouvez utiliser dans les formulaires ou contrôles calculés.

Expression

Résultat

=Forms![Commandes]![RéfCommande]

Valeur du contrôle RéfCommande figurant sur le formulaire Commandes.

=Forms![Commandes]![Sous-formulaire Commandes].Form![SousTotalCommande]

Valeur du contrôle SousTotalCommande figurant sur le sous-formulaire intitulé Sous-formulaire Commandes du formulaire Commandes.

=Forms![Commandes]![Sous-formulaire Commandes]![RéfProduit].Column(2)

Valeur de la troisième colonne dans RéfProduit, une zone de liste à plusieurs colonnes figurant sur le formulaire intitulé Sous-formulaire Commandes du formulaire Commandes. (Notez que la valeur 0 fait référence à la première colonne, 1 fait référence à la deuxième colonne, etc.)

=Forms![Commandes]![Sous-formulaire Commandes]![Prix] * 1,06

Produit de la valeur du contrôle Prix figurant sur le sous-formulaire intitulé Sous-formulaires Commandes du formulaire Commande et de 1,06 (ajoute 6 % à la valeur du contrôle Prix).

=Parent![RéfCommande]

Valeur du contrôle RéfCommande figurant sur le formulaire principal ou parent du sous-formulaire actuel.

Les expressions mentionnées dans le tableau suivant vous présentent certaines façons d’utiliser des contrôles calculés sur les états. Les expressions font référence à la propriété État.

Pour plus d’informations sur cette propriété, voir Propriété État.

Expression

Résultat

=Report![Facture]![RéfCommande]

Valeur d’un contrôle intitulé « RéfCommande » dans un état intitulé « Facture ».

=Report![Synthèse]![Sous-état Synthèse]![TotalVentes]

Valeur du contrôle TotalVentes figurant sur le sous-état intitulé Sous-état Synthèse de l’état Synthèse.

=Parent![RéfCommande]

Valeur du contrôle RéfCommande figurant sur le formulaire principal ou parent du sous-état actuel.

Expressions qui permettent de compter, d’additionner et de calculer la moyenne de valeurs

Vous pouvez utiliser une fonction d’agrégation pour calculer des valeurs pour un ou plusieurs champs ou contrôles. Par exemple, vous pouvez calculer un total par groupe pour le pied de groupe d’un état, ou le sous-total d’une commande pour des lignes d’article sur un formulaire. Vous pouvez également compter le nombre d’articles dans un ou plusieurs champs ou calculer une valeur moyenne.

Les expressions figurant dans le tableau suivant vous montrent certaines façons d’utiliser les fonctions telles que Moyenne, Compte et Somme.

Expression

Description

=Moyenne([Transport])

Utilise la fonction Moyenne pour afficher la moyenne des valeurs d’un contrôle ou d’un champ de table intitulé « Transport ».

=Compte([RéfCommande])

Utilise la fonction Compte pour afficher le nombre d’enregistrements figurant dans le contrôle RéfCommande.

=Somme([Ventes])

Utilise la fonction Somme pour afficher la somme des valeurs du contrôle Ventes.

=Somme([Quantité]*[Prix])

Utilise la fonction Somme pour afficher la somme du produit des valeurs des contrôles Quantité et Prix.

=[Ventes]/Somme([Ventes])*100

Affiche le pourcentage des ventes, calculé par la division de la valeur du contrôle Ventes avec la somme de toutes les valeurs du contrôle Ventes.

Remarque : Si vous définissez la propriété Format du contrôle Pourcentage, n’incluez pas *100 dans l’expression.

Pour plus d’informations sur l’utilisation de fonctions d’agrégation et le calcul du total des valeurs du champ et des colonnes, voir Additionner des données à l’aide d’une requête, Compter les données à l’aide d’une requête, Compter les lignes d’une feuille de données et Afficher des totaux de colonnes dans une feuille de données.

Expressions permettant de compter, d’additionner et de rechercher des valeurs de manière sélective à l’aide de fonctions d’agrégation de domaine

Vous devez utiliser un type de fonction intitulé Fonction d’agrégation de domaine lorsque vous devez additionner ou compter des valeurs de manière sélective. Un « domaine » est composé d’un ou plusieurs champs dans une ou plusieurs tables, ou d’un ou plusieurs contrôles dans un ou plusieurs formulaires ou états. Par exemple, vous pouvez faire correspondre les valeurs d’un champ de table avec les valeurs d’un contrôle sur un formulaire.

Expression

Description

=RechDom("[NomContact]", "[Fournisseurs]", "[RéfFournisseur] = " & Formulaires("Fournisseurs")("[RéfFournisseur]"))

Utilise la fonction RechDom pour renvoyer la valeur du champ NomContact de la table Fournisseurs, où la valeur du champ RéfFournisseur dans la table correspond à la valeur du contrôle RéfFournisseur du formulaire Fournisseurs.

=RechDom("[NomContact]", "[Fournisseurs]", "[RéfFournisseur] = " & Forms![Nouveaux fournisseurs]![RéfFournisseur])

Utiliser la fonction RechDom pour renvoyer la valeur du champ NomContact de la table Fournisseurs, où la valeur du champ RéfFournisseur dans la table correspond à la valeur du contrôle RéfFournisseur du formulaire Nouveaux fournisseurs.

=SomDom("[MontantCommande]", "[Commande]", "[RéfClient] = 'RATTC'")

Utilise la fonction SomDom pour renvoyer la somme totale des valeurs du champ MontantCommande de la table Commandes, où RéfClient est RATTC.

=CpteDom("[Retrait]","[Biens]","[Retrait]=Oui")

Utilise la fonction CpteDom pour renvoyer le nombre de valeurs Oui dans le champ Retrait (champ Oui/Non) de la table Biens.

Expressions qui permettent de manipuler et de calculer des dates

Le suivi des dates et des heures est une activité essentielle dans la gestion des bases de données. Par exemple, vous pouvez calculer le nombre de jours qui se sont écoulés depuis la date de facturation afin de dater vos comptes clients. Vous pouvez mettre en forme les dates et les heures de plusieurs manières, comme illustré dans le tableau suivant.

Expression

Description

=Date()

Utilise la fonction Date pour afficher la date actuelle au format jj-mm-aa, où mm représente le mois (1 à 12), jj représente le jour (1 à 31) et aa représente les deux derniers chiffres de l’année (1980 à 2099).

=Format(Maintenant(), "ss")

Utilise la fonction Format pour afficher le nombre de semaines dans l’année pour la date actuelle, où ss représente les semaines (1 à 53).

=PartDate("aaaa", [DateCommande])

Utilise la fonction PartDate pour afficher la valeur du contrôle DateCommande sous forme d’année à quatre chiffres.

=AjDate("a", -10, [DateEngagement])

Utilise la fonction AjDate pour afficher une date se produisant 10 jours avant la valeur du contrôle DateEngagement.

=DiffDate("j", [DateCommande], [DateExpédition])

Utilise la fonction DiffDate pour afficher la différence du nombre de jours existant entre les valeurs des contrôles DateCommande et DateExpédition.

=[DateFacturation] + 30

Utilise des opérations arithmétiques sur des dates pour calculer les dates se produisant 30 jours après la date figurant dans le champ ou contrôle DateFacturation.

Expressions conditionnelles qui renvoient une valeur sur les deux possibles

Les exemples d’expressions figurant dans le tableau suivant utilisent la fonction VraiFaux pour renvoyer une valeur sur les deux possibles. Vous transmettez trois arguments à la fonction VraiFaux : Le premier argument est une expression qui doit renvoyer une valeur Vrai ou Faux. Le deuxième argument représente la valeur à renvoyer si le résultat de l’expression est Vrai et le troisième argument représente la valeur à renvoyer si le résultat de l’expression est Faux.

Expression

Description

=VraiFaux([Confirmé] = "Oui", "Commande confirmée", "Commande non confirmée")

Utilise la fonction VraiFaux (Si immédiat) pour afficher le message « Commande confirmée » si la valeur du contrôle Confirmé est Oui ; sinon, affiche le message « Commande non confirmée ».

=VraiFaux(EstNull([Pays/région]), " ", [Pays])

Utilise les fonctions VraiFaux et EstNull pour afficher une chaîne vide si la valeur du contrôle Pays/région est null ; sinon, affiche la valeur du contrôle Pays/région.

=VraiFaux(EstNull([Région]), [Ville] & " " & [CodePostal], [Ville] & " " & [Région] & " " & [CodePostal])

Utilise les fonctions VraiFaux et EstNull pour afficher les valeurs des contrôles Ville et CodePostal si la valeur du contrôle Région est Null ; sinon, affiche les valeurs des champs ou contrôles Ville, Région et CodePostal.

=VraiFaux(EstNull([DateRequise]) Ou EstNull([DateExpédition]), "Vérifiez si une date est manquante", [DateRequise] - [DateExpédition])

Utilise les fonctions VraiFaux et EstNull pour afficher le message « Vérifiez si une date est manquante » si le résultat de la soustraction de DateExpédition avec DateRequise est null ; sinon, affiche l’intervalle entre les valeurs des dates des contrôles DateRequise et DateExpédition.

Haut de la page

Exemples d’expressions utilisées dans les requêtes et les filtres

Cette section contient des exemples d’expressions que vous pouvez utiliser pour créer un champ calculé dans une requête ou pour renseigner les critères d’une requête. Un champ calculé est une colonne d’une requête qui résulte d’une expression. Par exemple, vous pouvez calculer une valeur, combiner des valeurs texte telles que des prénoms et des noms ou modifier le format d’une partie de date.

Vous utilisez des critères dans une requête pour limiter les enregistrements que vous utilisez. Par exemple, vous pouvez utiliser l’opérateur Entre pour renseigner une date de début et de fin et limiter les résultats de votre requête aux commandes qui ont été expédiées entre ces dates.

Les sections suivantes vous expliquent comment ajouter un champ calculé à une requête et vous proposent des exemples d’expressions à utiliser dans les requêtes.

Ajouter un champ calculé en mode Création de requête

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la requête que vous souhaitez modifier, puis cliquez sur Mode création dans le menu contextuel.

  2. Cliquez dans la cellule Champ de la colonne où vous souhaitez créer le champ calculé. Vous pouvez entrer un nom pour le champ, suivi d’un signe deux-points, ou entrer votre propre expression. Si vous n’entrez pas de nom, Access ajoute Exprn :, où n représente un nombre séquentiel.

  3. Entrez votre expression.

    - ou -

    Dans l’onglet Créer, dans le groupe Paramétrage de requête, cliquez sur Générateur pour démarrer le Générateur d’expression.

    Pour plus d’informations sur l’utilisation du Générateur d’expressions, voir Créer une expression.

Expressions qui permettent de manipuler du texte dans une requête ou un filtre

Les expressions répertoriées dans le tableau suivant utilisent les opérateurs & et + pour combiner des chaînes de texte, utiliser des fonctions intégrées pour effectuer une opération sur une chaîne de texte, ou effectuer une opération sur du texte afin de créer un champ calculé.

Expression

Description

NomComplet : [Prénom] & " " & [Nom]

Crée un champ intitulé NomComplet qui affiche les valeurs des champs Prénom et Nom, séparées par un espace.

Addresse2 : [Ville] & " " & [Région] & " " & [CodePostal]

Crée un champ intitulé Addresse2 qui affiche les valeurs dans les champs Ville, Région et CodePostal, séparées par des espaces.

IntialeProduit :Gauche([NomProduit], 1)

Crée un champ intitulé InitialeProduit, puis utilise la fonction Gauche pour afficher, dans le champ InitialeProduit, le premier caractère de la valeur figurant dans le champ NomProduit.

TypeCode : Droite([CodeBien], 2)

Crée un champ intitulé TypeCode, puis utilise la fonction Droite pour afficher les deux derniers caractères des valeurs du champ CodeBien.

IndicatifRégional : ExtracChaîne([Téléphone],2,3)

Crée un champ intitulé IndicatifRégional, puis utilise la fonction ExtracChaîne pour afficher les trois caractères en commençant par le deuxième caractère de la valeur du champ Téléphone.

Expressions qui effectuent des opérations arithmétiques dans les champs calculés

Vous pouvez utiliser des expressions arithmétiques pour additionner, soustraire, multiplier et diviser les valeurs incluses dans deux champs ou contrôles, ou plus. Vous pouvez également effectuer des opérations arithmétiques sur des dates. Par exemple, supposons que vous avez un champ Date/Heure intitulé DateRequise. L’expression =[DateRequise] - 2 renvoie une valeur date/heure égale à deux jours avant la valeur incluse dans le champ DateRequise.

Expression

Description

TransportPrincipal : [Transport] * 1,1

Crée un champ intitulé TransportPrincipal, puis affiche les frais de transport plus 10 % dans le champ.

MontantCommande : [Quantité] * [PrixUnitaire]

Crée un champ intitulé MontantCommande, puis affiche le produit des valeurs des champs Quantité et PrixUnitaire.

Délai : [DateRequise] - [DateExpédition]

Crée un champ intitulé Délai, puis affiche la différence entre les valeurs des champs DateRequise et DateExpédition.

StockTotal : [UnitésEnStock]+[UnitésEnComande]

Crée un champ intitulé StockTotal, puis affiche la somme des valeurs des champs UnitésEnStock et UnitésEnCommande.

PourcentageTransport : Somme([Transport])/Somme([Sous-total]) *100

Crée un champ intitulé PourcentageTransport, puis affiche le pourcentage de frais de transport dans chaque sous-total. Cette expression utilise la fonction Somme pour totaliser les valeurs du champ Transport, puis divise ces totaux par la somme des valeurs du champ Sous-total.

Pour utiliser cette expression, vous devez convertir votre requête sélectionnée en une requête Totaux, car vous devez utiliser la ligne Total dans la grille de création et vous devez définir la cellule Total associée à ce champ sur Expression.

Pour plus d’informations sur la création d’une requête Totaux, voir Additionner des données à l’aide d’une requête.

Si vous définissez la propriété Format du champ Pourcentage, n’incluez pas *100.

Pour plus d’informations sur l’utilisation de fonctions d’agrégation et le calcul du total des valeurs du champ et des colonnes, voir Additionner des données à l’aide d’une requête, Compter les données à l’aide d’une requête, Compter les lignes d’une feuille de données et Afficher des totaux de colonnes dans une feuille de données.

Expressions qui permettent de manipuler et de calculer des dates dans les champs calculés

Presque toutes les bases de données stockent et suivent les dates et les heures. Vous utilisez les dates et les heures dans Access en définissant les champs de date et d’heure dans vos tables sur le type de données Date/Heure. Access peut effectuer des calculs arithmétiques sur des dates, par exemple, vous pouvez calculer le nombre de jours qui se sont écoulés depuis la date de facturation afin de dater vos comptes clients.

Expression

Description

DélaiAttente : DiffDate("j", [DateCommande], [DateExpédition])

Crée un champ intitulé DélaiAttente, puis utilise la fonction DiffDate pour afficher le nombre de jours entre la date de commande et la date d’expédition.

AnnéeEmbauche : PartDate("aaaa",[DateEmbauche])

Crée un champ intitulé DateEmbauche, puis utilise la fonction PartDate pour afficher l’année à laquelle chaque employé a été embauché.

MoinsTrente : Date( )- 30

Crée un champ intitulé MoinsTrente, puis utilise la fonction Date pour afficher les 30 jours précédents la date actuelle.

Expressions qui permettent de compter, d’additionner et de calculer la moyenne de valeurs à l’aide de fonctions d’agrégation SQL ou de domaine

Les expressions figurant dans le tableau suivant utilisent les fonctions SQL (Structured Query Language) qui agrègent ou synthétisent des données. Ces fonctions (par exemple, Somme, Compte et Moyenne) sont souvent appelées fonctions d’agrégation.

En plus des fonctions d’agrégation, Access fournit également des fonctions d’agrégation de « domaine » que vous pouvez utiliser pour additionner ou compter des valeurs de manière sélective. Par exemple, vous pouvez compter uniquement les valeurs se trouvant dans une certaine plage ou rechercher une valeur se trouvant dans une autre table. L’ensemble des fonctions d’agrégation de domaine incluent la fonction SomDom, la fonction CpteDom et la fonction MoyDom.

Pour calculer des totaux, vous devrez parfois créer une requête Opérations. Par exemple, pour effectuer une synthèse par groupe, vous devez utiliser une requête Opérations. Pour créer une requête Opérations à partir de la grille de création de requête, cliquez sur Totaux dans le menu Afficher.

Expression

Description

NombreLignes :Total(*)

Crée un champ intitulé NombreLignes, puis utilise la fonction Total pour compter le nombre d’enregistrements dans la requête, y compris les enregistrements avec des champs null (vides).

PourcentageTransport : Somme([Transport])/Somme([Sous-total]) *100

Crée un champ intitulé PourcentageTransport, puis calcule le pourcentage de frais de transport dans chaque sous-total en divisant la somme des valeurs incluses dans le champ Transport par la somme des valeurs du champ Sous-total. (Cet exemple utilise la fonction Somme.)

Remarque : Vous devez utiliser cette expression avec une requête Opérations. Si vous définissez la propriété Format du champ Pourcentage, n’incluez pas *100.

Pour plus d’informations sur la création d’une requête Totaux, voir Additionner des données à l’aide d’une requête.

MoyenneTransport : MoyDom("[Transport]", "[Commandes]")

Crée un champ intitulé MoyenneTransport, puis utilise la fonction MoyDom pour calculer les frais de transport moyens appliqués à toutes les commandes combinées dans une requête Opérations.

Expressions permettant d’utiliser des champs avec des informations manquantes (champs avec des valeurs null)

Les expressions présentées ici utilisent des champs avec des informations potentiellement manquantes, par exemple, ceux contenant des valeurs null (inconnues ou non définies). Vous rencontrez souvent des valeurs null, telles qu’un prix inconnu pour un nouveau produit ou une valeur qu’un collègue aurait oublié d’ajouter à une commande. La capacité à rechercher et à traiter des valeurs null peut prendre une part importante des opérations de base de données. Les expressions mentionnées dans le tableau suivant vous présentent certaines manières de traiter les valeurs null.

Expression

Description

PaysRégionActuel :VraiFaux(EstNull([PaysRégion]), " ", [PaysRégion])

Crée un champ intitulé PaysRégionActuel, puis utilise les fonctions VraiFaux et EstNull pour afficher une chaîne vide dans ce champ lorsque le champ PaysRégion contient une valeur null ; sinon, affiche le contenu du champ PaysRégion.

Délai : VraiFaux(EstNull([DateRequise] - [DateExpédition]), "Vérifiez si une date est manquante", [DateRequise] - [DateExpédition])

Crée un champ intitulé Délai, puis utilise les fonctions VraiFaux et EstNull pour afficher le message « Vérifiez si une date est manquante » si la valeur incluse dans le champ DateRequise ou DateExpédition est null ; sinon, affiche la différence de date.

VentesSixMois : Nz([VentesTri1]) + Nz([VentesTri2])

Crée un champ intitulé VentesSixMois, puis affiche le total des valeurs dans les champs VentesTri1 et VentesTri2 en utilisant tout d’abord la fonction Nz pour convertir les valeurs null en zéros.

Expression qui utilise une sous-requête pour créer un champ calculé

Vous pouvez utiliser une requête imbriquée, également appelée sous-requête, pour créer un champ calculé. L’expression figurant dans le tableau suivant est un exemple de champ calculé résultant d’une sous-requête.

Expression

Description

Cat : (SELECT [NomCatégorie] FROM [Catégories] WHERE [Produits].[RéfCatégorie]=[Catégories].[RéfCatégorie])

Crée un champ intitulé Cat, puis affiche NomCatégorie, si RéfCatégorie dans la table Catégories est identique à RéfCatégorie dans la table Produits.

Expressions qui définissent des critères et des limites aux enregistrements du jeu de résultats

Vous pouvez utiliser une expression pour définir des critères pour une requête. Access renvoie ensuite uniquement les lignes qui correspondent aux critères. Les étapes décrites dans cette section offrent des informations de base sur l’ajout de critères à une requête, et les tableaux de cette section contiennent des exemples de critères permettant d’établir des correspondances entre des valeurs texte et de date.

Ajouter des critères à une requête

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la requête que vous souhaitez modifier, puis cliquez sur Mode création Image du bouton dans le menu contextuel.

  2. Dans la ligne Critères de la grille de création, cliquez sur la cellule correspondant à la colonne à utiliser, puis entrez vos critères.

    Pour agrandir la zone dans laquelle vous saisissez une expression, appuyez sur Maj+F2 pour afficher la boîte de dialogue Zoom.

    - ou -

    Dans l’onglet Créer, dans le groupe Paramétrage de requête, cliquez sur Générateur Image du bouton pour démarrer le Générateur d’expression et créer votre expression.

Remarque : Lorsque vous créez des expressions qui définissent des critères, ne faites pas précéder les expressions de l’opérateur =.

Pour plus d’informations sur l’utilisation du Générateur d’expression, voir Créer une expression.

Expressions qui établissent des correspondances avec des valeurs texte entières ou partielles

Les exemples d’expressions figurant dans ce tableau présentent des critères qui établissent des correspondances avec des valeurs texte entières ou partielles.

Champ

Expression

Description

VilleExpédition

"Londres"

Affiche les commandes expédiées à Londres.

VilleExpédition

"Paris" Ou "Hedge End"

Utilise l’opérateur Ou pour afficher les commandes expédiées à Londres ou Hedge End.

PaysRégionExpédition

Dans("Canada", "Royaume-Uni")

Utilise l’opérateur Dans pour afficher les commandes expédiées au Canada ou au Royaume-Uni.

PaysRégionExpédition

Pas "États-Unis"

Utilise l’opérateur Pas pour afficher les commandes expédiées aux pays/régions autres que États-Unis.

NomProduit

Pas Comme "C*"

Utilise l’opérateur Pas et le caractère générique * pour afficher les produits dont les noms ne commencent pas par C.

NomEntreprise

>="N"

Affiche les commandes expédiées aux entreprises dont les noms commencent par des lettres comprises entre N et Z.

CodeProduit

Droite([CodeProduit], 2)="99"

Utilise la fonction Droite pour afficher les commandes dont la valeur CodeProduit se termine par 99.

NomExpédition

Comme "S*"

Affiche les commandes expédiées aux clients dont les noms commencent par la lettre S.

Expressions qui utilisent des dates dans les critères de correspondance

Les expressions figurant dans le tableau suivant illustrent l’utilisation de dates et de fonctions associées dans les expressions de critères.

Pour plus d’informations sur la saisie et l’utilisation de valeurs de dates, voir Entrer une valeur de date ou d’heure. Pour plus d’informations sur l’utilisation des fonctions figurant dans ces exemples d’expressions, cliquez sur les liens menant aux rubriques relatives aux diverses fonctions.

Champ

Expression

Description

DateExpédition

#02/02/2007#

Affiche les commandes expédiées le 02 février 2007.

DateExpédition

Date()

Affiche les commandes expédiées ce jour.

DateRequise

Entre Date( ) Et AjDate("m", 3, Date( ))

Utilise l’opérateur Entre...Et et les fonctions AjDate et Date pour afficher les commandes à livrer entre la date du jour et une date située trois mois après la date du jour.

DateCommande

< Date( ) - 30

Utilise la fonction Date pour afficher les commandes plus anciennes que 30 jours.

DateCommande

Année([DateCommande])=2007

Utilise la fonction Année pour afficher les commandes dont la date de commande a été enregistrée en 2007.

DateCommande

PartDate("t", [DateCommande])=4

Utilise la fonction PartDate pour afficher les commandes enregistrées au cours du quatrième trimestre de l’année en cours.

DateCommande

SérieDate(Année ([DateCommande]), Mois([DateCommande])+1, 1)-1

Utilise les fonctions SérieDate, Année et Mois pour afficher les commandes enregistrées le dernier jour de chaque mois.

DateCommande

Année([DateCommande])= Année(Maintenant()) Et Mois([DateCommande])= Mois(Maintenant())

Utilise les fonctions Année et Mois ainsi que l’opérateur Et pour afficher les commandes enregistrées au cours de l’année et du mois en cours.

DateExpédition

Entre #05/01/2007# Et #10/01/2007#

Utilise l’opérateur Entre...Et pour afficher les commandes expédiées entre le 05 janvier 2007 et le 10 janvier 2007.

DateRequise

Entre Date( ) Et AjDate("M", 3, Date( ))

Utilise l’opérateur Entre...Et pour afficher les commandes à livrer entre la date du jour et une date située trois mois après la date du jour.

DateNaissance

Mois([DateNaissance])=Mois(Date())

Utilise les fonctions Mois et Date pour afficher les employés dont l’anniversaire tombe ce mois.

Expressions qui correspondent à une valeur manquante (null) ou à une chaîne nulle

Les expressions figurant dans le tableau suivant fonctionnent avec des champs pour lesquels il manque potentiellement des informations, c’est-à-dire, ceux qui peuvent contenir une valeur null ou une chaîne nulle. La valeur null représente l’absence d’informations ; elle ne représente en aucun cas une valeur zéro ou une valeur quelconque. Access prend en charge le concept d’informations manquantes, car ce dernier est essentiel au maintien de l’intégrité d’une base de données. En pratique, des informations sont souvent manquantes, même de façon temporaire (par exemple, le prix d’un nouveau produit encore à déterminer). Par conséquent, une base de données qui modélise une entité du monde réelle, par exemple, une entreprise, doit être capable d’enregistrer des informations comme étant manquantes. Vous pouvez utiliser la fonction EstNull pour déterminer si un champ ou un contrôle contient une valeur null. De plus, vous pouvez utiliser la fonction Nz pour convertir une valeur null en zéro.

Champ

Expression

Description

RégionExpédition

Est Null

Affiche les commandes destinées aux clients pour lesquels le champ RégionExpédition est null (manquant).

RégionExpédition

Est Pas Null

Affiche les commandes destinées aux clients pour lesquels le champ RégionExpédition contient une valeur.

Télécopie

""

Affiche les commandes destinées aux clients qui ne disposent pas de fax, ce qui est indiquée par une valeur de chaîne nulle dans le champ Télécopie plutôt qu’une valeur null (manquante).

Expressions qui utilisent des modèles pour établir des correspondances avec des enregistrements

L’opérateur Comme est très flexible lorsque vous tentez d’établir des correspondances avec des lignes qui suivent un modèle, car vous pouvez utiliser l’opérateur Comme avec des caractères génériques et définir des modèles de correspondance pouvant être utilisés par Access. Par exemple, le caractère générique * (astérisque) recherche toute séquence de caractères de n’importe quel type et permet également de rechercher tous les noms qui commencent par une lettre. Par exemple, vous pouvez utiliser l’expression Comme "S*" pour rechercher tous les noms qui commencent par la lettre S.

Pour plus d’informations, voir Opérateur Comme.

Champ

Expression

Description

NomExpédition

Comme "S*"

Recherche tous les enregistrements dans le champ NomExpédition qui commencent par la lettre S.

NomExpédition

Comme "*Importations"

Recherche tous les enregistrements dans le champ NomExpédition qui se terminent par le mot « Importations ».

NomExpédition

Comme "[A-D]*"

Recherche tous les enregistrements dans le champ NomExpédition qui commencent par la lettre A, B, C ou D.

NomExpédition

Comme "*ar*"

Recherche tous les enregistrements dans le champ NomExpédition qui incluent la série de lettres « ar ».

NomExpédition

Comme "Maison Dewe?"

Recherche tous les enregistrements dans le champ NomExpédition qui incluent « Maison » dans la première partie de la valeur et une chaîne à cinq lettres dans laquelle les quatre premières lettres sont « Dewe » et la dernière lettre est inconnue.

NomExpédition

Pas Comme "A*"

Recherche tous les enregistrements dans le champ NomExpédition qui ne commencent pas par la lettre A.

Expressions qui établissent des correspondances avec des lignes en fonction du résultat d’une fonction d’agrégation de domaine

Vous devez utiliser une fonction d’agrégation de domaine lorsque vous devez additionner ou compter des valeurs de manière sélective ou calculer la moyenne de celles-ci. Par exemple, vous souhaiterez peut-être compter uniquement les valeurs se trouvant dans une plage précise, ou celles qui renvoient le résultat Oui. D’autres fois, vous aurez peut-être besoin de rechercher une valeur dans une autre table de manière à l’afficher. Les exemples d’expressions figurant dans le tableau suivant utilisent des fonctions d’agrégation de domaine pour effectuer un calcul basé sur un ensemble de valeurs et utiliser le résultat en tant que critères de requête.

Champ

Expression

Description

Transport

> (ÉcartTypeDom("[Transport]", "Commandes") + MoyDom("[Transport]", "Commandes"))

Utilise les fonctions ÉcartTypeDom et MoyDom pour afficher toutes les commandes pour lesquelles les coûts de transport dépassent la moyenne plus l’écart type pour les frais de transport.

Quantité

> MoyDom("[Quantité]", "[Détails commandes]")

Utilise la fonction MoyDom pour afficher les produits commandés dans des quantités qui dépassent la quantité de commandes moyenne.

Expressions qui établissent des correspondances en fonction des résultats de sous-requêtes

Vous utilisez une sous-requête, également appelée requête imbriquée, pour calculer une valeur à des fins d’utilisation en tant que critère. Les exemples d’expressions figurant dans le tableau suivant établissent des correspondances avec des lignes en fonction des résultats renvoyés par une sous-requête.

Champ

Expression

Affiche

PrixUnitaire

(SELECT [PrixUnitaire] FROM [Produits] WHERE [NomProduit] = "Sirop d’anis")

Produits dont le prix est identique au prix du produit Sirop d’anis.

PrixUnitaire

>(SELECT AVG([PrixUnitaire]) FROM [Produits])

Produits dont le prix unitaire dépasse la moyenne.

Salaire

> ALL (SELECT [Salaire] FROM [Employés] WHERE ([Titre] LIKE "*Responsable*") OR ([Titre] LIKE "*Vice-président*"))

Salaire de chaque représentant commercial qui est supérieur à celui de tous les employés dont le titre comporte le mot « Responsable » ou « Vice-président ».

TotalCommande : [PrixUnitaire] * [Quantité]

> (SELECT AVG([PrixUnitaire] * [Quantité]) FROM [Détails commandes])

Commandes dont le total est supérieur à la valeur de commande moyenne.

Expressions à utiliser dans les requêtes Mise à jour

Une requête Mise à jour permet de modifier les données dans un ou plusieurs champs existants d’une base de données. Par exemple, vous pouvez remplacer des valeurs ou les supprimer entièrement. Ce tableau illustre certaines manières d’utiliser des expressions dans les requêtes Mise à jour. Vous utilisez ces expressions dans la ligne Mise à jour de la grille de création de requête pour le champ à mettre à jour.

Pour plus d’informations sur la création de requêtes Mise à jour, voir Créer et exécuter une requête Mise à jour.

Champ

Expression

Résultat

Titre

"Commercial"

Remplace une valeur texte par Commercial.

DébutProjet

#10/08/07#

Remplace une valeur de date par 10 août 2007.

Retrait

Oui

Remplace une valeur Non dans un champ Oui/Non par Oui.

NuméroPièce

"NP" & [NuméroPièce]

Insère NP au début de chaque numéro de pièce spécifié.

TotalLigneArticle

[PrixUnitaire] * [Quantité]

Calcule le produit de PrixUnitaire et Quantité.

Transport

[Transport] * 1,5

Augmente les frais de transport de 50 %.

Ventes

SomDom("[Quantité] * [PrixUnitaire]",
"Détails commandes", "[RéfProduit]=" &  [RéfProduit])

Lorsque les valeurs RéfProduit dans la table actuelle correspondent aux valeurs RéfProduit dans la table Détails commandes, met à jour les totaux des ventes en fonction du produit de Quantité et PrixUnitaire.

CodePostalExpédition

Droite([CodePostalExpédition], 5)

Tronque les caractères les plus à gauche, en laissant les cinq caractères les plus à droite.

PrixUnitaire

Nz([PrixUnitaire])

Remplace une valeur null (non définie ou inconnue) par un zéro (0) dans le champ PrixUnitaire.

Expressions utilisées dans les instructions SQL

Structured Query Language, ou SQL, est le langage de requête utilisé par Access. Chaque requête que vous créez en mode Création de requête peut également être exprimée en langage SQL. Pour voir l’instruction SQL d’une requête, cliquez sur Mode SQL dans le menu Affichage. Le tableau suivant contient des exemples d’instructions SQL qui utilisent une expression.

Instruction SQL qui utilise une expression

Résultat

SELECT [Prénom],[Nom] FROM [Employés] WHERE [Nom]="Chauvin"

Affiche les valeurs des champs Prénom et Nom pour les employés dont le nom est Chauvin.

SELECT [RéfProduit],[NomProduit] FROM [Produits] WHERE [RéfCatégorie]=Forms![Nouveaux produits]![RéfCatégorie];

Affiche les valeurs des champs RéfProduit et NomProduit dans la table Produits pour les enregistrements dans lesquels la valeur RéfCatégorie correspond à la valeur RéfCatégorie spécifiée dans un formulaire Nouveaux produits ouvert.

SELECT Moyenne([PrixGlobal]) AS [Prix global moyen] FROM [Détails commande (global)] WHERE [PrixGlobal]>1000;

Calcule le prix global moyen pour les commandes dont la valeur dans le champ PrixGlobal est supérieure à 1 000, puis l’affiche dans un champ intitulé Prix global moyen.

SELECT [RéfCatégorie], Compte([RéfProduit]) AS [NombreDeRéfProduit] FROM [Produits] GROUP BY [RéfCatégorie] HAVING Compte([RéfProduit])>10;

Dans un champ intitulé NombreDeRéfProduit, affiche le nombre total de produits pour les catégories comptant plus de 10 produits.

Haut de la page

Exemples d’expressions de valeur par défaut

Lorsque vous concevez une base de données, vous souhaiterez peut-être attribuer une valeur par défaut à un champ ou à un contrôle. Access fournit ensuite la valeur par défaut lorsqu’un nouvel enregistrement contenant le champ est créé ou lorsqu’un objet contenant le contrôle est créé. Les expressions figurant dans le tableau suivant représentent les exemples de valeurs par défaut pour un champ ou un contrôle.

Ajouter une valeur par défaut pour un champ de table

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la table à modifier, puis cliquez sur Mode création dans le menu contextuel.

  2. Cliquez sur le champ à modifier. Dans l’onglet Général, cliquez sur la zone de propriété Valeur par défaut.

  3. Tapez l’expression, ou cliquez sur le bouton Créer Bouton Générateur situé à droite de la zone de propriété, 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 comporte une valeur par défaut, la valeur par défaut du contrôle prévaut.

Champ

Expression

Valeur par défaut du champ

Quantité

1

1

Région

"MT"

MT

Région

"New York, N.Y."

New York, N.Y. (notez que vous devez inclure la valeur entre des guillemets si celle-ci comporte des signes de ponctuation).

Télécopie

""

Chaîne nulle permettant d’indiquer que, par défaut, ce champ doit être vide plutôt que de contenir une valeur nulle

Date de commande

Date( )

Date du jour

Échéance

Date() + 60

Date située 60 jours après la date du jour

Haut de la page

Exemples d’expressions de règle de validation de champs

Vous pouvez créer une règle de validation pour un champ ou un contrôle en utilisant une expression. Access applique ensuite la règle lorsque des données sont entrées dans le champ ou le contrôle. Pour créer une règle de validation, vous devez modifier la propriété ValideSi du champ ou du contrôle. Vous devez également envisager de définir la propriété MessageSiErreur qui contient le texte qu’Access affiche lors de la détection d’une violation de la règle de validation. Si vous ne définissez par la propriété MessageSiErreur, Access affiche un message d’erreur par défaut.

Ajouter une règle de validation à un champ

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la table à modifier, puis cliquez sur Mode création dans le menu contextuel.

  2. Cliquez sur le champ à modifier.

  3. Cliquez sur la zone de propriété Valide si, situé dans la section inférieure du Concepteur de tables.

  4. Tapez l’expression, ou cliquez sur le bouton Créer Bouton Générateur situé à droite de la zone de propriété pour créer une expression à l’aide du Générateur d’expression.

    Remarque : Ne faites pas précéder l’expression par l’opérateur = lorsque vous créez une règle de validation.

Les exemples figurant dans le tableau suivant illustrent les expressions de règle de validation pour la propriété ValideSi et le texte associé pour la propriété MessageSiErreur.

Propriété ValideSi

Propriété MessageSiErreur

<> 0

Veuillez entrer une valeur non nulle.

0 Ou > 100

La valeur doit être égale à 0 ou supérieure à 100.

Comme "K???"

La valeur doit être composée de quatre caractères et commencer par la lettre K.

< #01/01/2007#

Entrez une date antérieure au 01/01/2007.

>= #01/01/2007# Et < #01/01/2008#

La date doit être en 2007.

Pour plus d’informations sur la validation de données, voir Créer une règle de validation pour valider les données d’un champ.

Haut de la page

Exemples d’expressions de condition de macro

Dans certains cas, vous souhaiterez peut-être exécuter une action, voire une série d’actions de macro, seulement si une condition déterminée est vérifiée. Par exemple, supposons que vous voulez exécuter une action uniquement lorsque la valeur de la zone de texte Compteur est égale à 10. Vous utilisez alors une expression pour définir la condition dans la colonne Condition de la macro : [Compteur]=10.

Ajouter une condition pour une action de macro

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la macro à modifier, puis cliquez sur Mode création dans le menu contextuel.

  2. Si la colonne Condition n’est pas disponible dans le Concepteur de macros, dans l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Conditions.

  3. Cliquez sur la cellule Condition pour l’action de macro à modifier, puis tapez votre expression conditionnelle.

  4. Enregistrez vos modifications et fermez la macro.

Comme pour la propriété ValideSi, l’expression de colonne Condition est une expression conditionnelle. Son résultat doit être une valeur Vrai ou Faux. L’action prend place uniquement lorsque la condition a la valeur Vrai.

Utilisez cette expression pour effectuer l’action

Si

[Ville]="Paris"

Paris est la valeur Ville dans le champ du formulaire à partir duquel la macro a été exécutée.

CpteDom("[RéfCommande]", "Commandes") > 35

Il existe plus de 35 entrées dans le champ RéfCommande de la table Commandes.

CpteDom("*", "[Détails commandes]", "[RéfCommande]=" & Forms![Commandes]![RéfCommande]) > 3

Il existe plus de trois entrées dans la table Détails commandes pour lesquels le champ RéfCommande de la table correspond au champ RéfCommande du formulaire Commandes.

[DateExpédition] Entre #02 février 2007# Et #02 mars 2007#

La valeur du champ DateExpédition du formulaire à partir duquel la macro est exécutée n’est pas antérieure au 02 février 2007 et pas ultérieure au 02 mars 2007.

Forms![Produits]![UnitésEnStock] < 5

La valeur du champ UnitésEnStock figurant dans le formulaire Produits est inférieure à 5.

EstNull([Prénom])

La valeur Prénom figurant dans le formulaire à partir duquel la macro est exécutée est nulle (c’est-à-dire, qu’elle ne contient aucune valeur). Cette expression revient à utiliser [Prénom] Est Null.

[PaysRégion]="Royaume-Uni" Et Forms![TotauxVentes]![TotalCommandes] > 100

La valeur du champ PaysRégion figurant dans le formulaire à partir duquel la macro est exécutée est Royaume-Uni, et la valeur du champ TotalCommandes figurant dans le formulaire TotauxVentes est supérieure à 100.

[PaysRégion] Dans ("France", "Italie", "Espagne") Et NbCar([CodePostal])<>5

La valeur du champ PaysRégion figurant dans le formulaire à partir duquel la macro est exécutée est soit France, Italie ou Espagne, et le code postal ne fait pas 5 caractères de long.

BoîteMsg("Vous confirmez les modifications ?",1)=1

Vous cliquez sur OK dans une boîte de dialogue affichée par la fonction BoîteMsg. Si vous cliquez sur Annuler dans la boîte de dialogue, Access ignore l’action.

Remarque : Pour forcer Access à ignorer temporairement une action, insérez la condition Faux. Le fait de forcer Access à ignorer l’action de manière temporaire peut être utile lorsque vous tentez de rechercher des problèmes dans une macro.

Haut de la page

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×