Exemples d’expressions

Cet article fournit de nombreux exemples d’expressions 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. Dans Access, vous pouvez utiliser des expressions pour calculer des valeurs, valider des données et définir une valeur par défaut.

Contenu de cet article

Formulaires et états

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.

Remarque    Vous pouvez également utiliser des expressions dans un formulaire ou état pour Faire ressortir des données avec la mise en forme conditionnelle.

Opérations de 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.

=[FirstName] & " " & [LastName]

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 espace (placé entre guillemets) et le champ Nom.

=Left([ProductName], 1)

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

=Right([AssetCode], 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.

=Trim([Address])

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

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

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.

=[City] & (" " + [Region]) & " " & [PostalCode]

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 indique que si un composant d’une expression est null, l’ensemble de l’expression est également null. L’opérateur + prend en charge la propagation null, contrairement à l’opérateur &.

Haut de page

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

Résultat

=[Page]

1

="Page " & [Page]

Page 1

="Page " & [Page] & " of " & [Pages]

Page 1 sur 3

=[Page] & " of " & [Pages] & " Pages"

1 page(s) sur 3

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

1/3 pages

=[Country/region] & " - " & [Page]

Royaume-Uni - 1

=Format([Page], "000")

001

="Printed on: " & Date()

Imprimé le : 31/12/17

Haut de page

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 ayez un champ de table Date/Heure intitulé DateRequise. Dans le champ, ou dans un contrôle lié au champ, l’expression =[RequiredDate] - 2 renvoie une valeur de date/heure égale à deux jours avant les valeurs actuelles incluses dans le champ DateRequise.

Expression

Résultat

=[Subtotal]+[Freight]

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

=[RequiredDate]-[ShippedDate]

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

=[Price]*1.06

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

=[Quantity]*[Price]

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

=[EmployeeTotal]/[CountryRegionTotal]

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 d’un des contrôles de l’expression est null, le résultat de l’ensemble de l’expression est null (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 la propagation null en convertissant la valeur null en zéro à l’aide de la fonction Nz. Par exemple, =Nz([Subtotal])+Nz([Freight]).

Haut de page

Valeurs incluses dans d’autres 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![Orders]![OrderID]

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

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

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

=Forms![Orders]![Orders Subform]![ProductID].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![Orders]![Orders Subform]![Price] * 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![OrderID]

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 présentent quelques utilisations possibles des contrôles calculés sur les états. Les expressions font référence à la propriété État.

Expression

Résultat

=Report![Invoice]![OrderID]

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

=Report![Summary]![Summary Subreport]![SalesTotal]

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

=Parent![OrderID]

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

Haut de page

Compte, somme et 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 mentionnées dans le tableau suivant présentent quelques utilisations des fonctions telles que Moyenne, Compte et Somme.

Expression

Description

=Avg([Freight])

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

=Count([OrderID])

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

=Sum([Sales])

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

=Sum([Quantity]*[Price])

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

=[Sales]/Sum([Sales])*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.

Si vous définissez la propriété Format du contrôle sur 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.

Haut de page

Fonctions d'agrégation SQL

Vous devez utiliser un type de fonction intitulé Fonction d’agrégation SQL ou de domaine pour additionner ou compter des valeurs de manière sélective. Un « domaine » est composé d’un ou plusieurs champs inclus dans une ou plusieurs tables, ou d’un ou plusieurs contrôles inclus 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 figurant sur un formulaire.

Expression

Description

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

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.

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

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.

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

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

=DCount("[Retired]","[Assets]","[Retired]=Yes")

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

Haut de page

Opérations de date

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 mm-dd-yy, où mm représente le mois (1 à 12), dd représente le jour (1 à 31) et yy représente les deux derniers chiffres de l’année (1980 à 2099).

=Format(Now(), "ww")

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

=DatePart("yyyy", [OrderDate])

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

=DateAdd("y", -10, [PromisedDate])

Utilise la fonction AjDate pour afficher une date située 10 jours avant la valeur du contrôle DateEngagement.

=DateDiff("d", [OrderDate], [ShippedDate])

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

=[InvoiceDate] + 30

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

Haut de page

Conditions applicables à deux valeurs uniquement

Les exemples d’expressions mentionnés 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 True ou False. 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

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

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

=IIf(IsNull([Country/region]), " ", [Country])

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.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

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.

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

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 page

Requêtes et 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 pouvez appliquer des critères à une requête pour limiter les enregistrements que vous utilisez. Par exemple, vous pouvez utiliser l’opérateur Between 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.

Vous trouverez ci-dessous des exemples d’expressions à utiliser dans les requêtes.

Opérations de texte

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

FullName: [FirstName] & " " & [LastName]

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

Address2: [City] & " " & [Region] & " " & [PostalCode]

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

ProductInitial: Left([ProductName], 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: Right([AssetCode], 2)

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

AreaCode: Mid([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.

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Nomme le champ calculé PrixÉtendu et utilise la fonction CMonnaie pour calculer les totaux des lignes après remise.

Haut de page

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 effectuer des opérations arithmétiques sur des dates. Par exemple, supposons que vous ayez un champ Date/Heure intitulé DateRequise. L’expression =[RequiredDate] - 2 renvoie une valeur de date/heure égale à deux jours avant la valeur incluse dans le champ DateRequise.

Expression

Description

PrimeFreight: [Freight] * 1.1

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

OrderAmount: [Quantity] * [UnitPrice]

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

LeadTime: [RequiredDate] - [ShippedDate]

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

TotalStock: [UnitsInStock]+[UnitsOnOrder]

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

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *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 sur 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.

Haut de page

Opérations de date

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

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

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.

YearHired: DatePart("yyyy",[HireDate])

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

MinusThirty: Date( )- 30

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

Haut de page

Fonctions d'agrégation SQL

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

RowCount: Count(*)

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).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *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.)

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

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

AverageFreight: DAvg("[Freight]", "[Orders]")

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.

Haut de page

Champs présentant des données manquantes

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

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

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.

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

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.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

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.

Haut de page

Champs calculés avec des sous-requêtes

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 [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

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.

Haut de page

Faire correspondre des valeurs de texte

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

Champ

Expression

Description

VilleExpédition

"London"

Affiche les commandes expédiées à Londres.

VilleExpédition

"London" Or "Hedge End"

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

PaysRégionExpédition

In("Canada", "UK")

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

PaysRégionExpédition

Not "USA"

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

NomProduit

Not Like "C*"

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

NomEntreprise

>="N"

Affiche les commandes expédiées aux entreprises dont le nom commence par les lettres N à Z.

CodeProduit

Right([ProductCode], 2)="99"

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

NomExpédition

Like "S*"

Affiche les commandes expédiées aux clients dont le nom commence par la lettre S.

Haut de page

Faire correspondre des critères de date

Les expressions mentionnées 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 date, voir Entrer une valeur de date ou d’heure.

Champ

Expression

Description

DateExpédition

#2/2/2017#

Affiche les commandes expédiées le 2 février 2017.

DateExpédition

Date()

Affiche les commandes expédiées ce jour.

DateRequise

Between Date( ) And DateAdd("m", 3, Date( ))

Utilise l’opérateur Between...And 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 postérieures aux 30 derniers jours.

DateCommande

Year([OrderDate])=2017

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

DateCommande

DatePart("q", [OrderDate])=4

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

DateCommande

DateSerial(Year ([OrderDate]), Month([OrderDate])+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

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

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

Between #1/5/2017# And #1/10/2017#

Utilise l’opérateur Between...And pour afficher les commandes expédiées entre le 5 janvier 2017 et le 10 janvier 2017.

DateRequise

Between Date( ) And DateAdd("M", 3, Date( ))

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

DateNaissance

Month([BirthDate])=Month(Date())

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

Haut de page

Rechercher des données manquantes

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

Is Null

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

RégionExpédition

Is Not 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).

Haut de page

Faire correspondre des modèles d’enregistrement avec Comme

L’opérateur Like 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 Like avec des caractères génériques et définir des modèles de correspondance utilisables 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 Like "S*" pour rechercher tous les noms qui commencent par la lettre S. Pour plus d’informations, consultez l’article Opérateur Comme.

Champ

Expression

Description

NomExpédition

Like "S*"

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

NomExpédition

Like "*Imports"

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

NomExpédition

Like "[A-D]*"

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

NomExpédition

Like "*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

Not Like "A*"

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

Haut de page

Faire correspondre des lignes avec des agrégats SQL

Vous devez utiliser une fonction d’agrégation SQL ou de domaine pour additionner ou compter des valeurs de manière sélective, ou calculer la moyenne de celles-ci. Par exemple, vous pouvez compter uniquement les valeurs comprises dans une plage spécifique, ou celles qui renvoient le résultat Oui. Vous pouvez également rechercher une valeur dans une autre table de manière à l’afficher. Les exemples d’expressions mentionnés 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ère de requête.

Champ

Expression

Description

Transport

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

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é

> DAvg("[Quantity]", "[Order Details]")

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

Haut de page

Faire correspondre des champs avec des 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 [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

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

PrixUnitaire

>(SELECT AVG([UnitPrice]) FROM [Products])

Produits dont le prix unitaire dépasse la moyenne.

Salaire

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

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([UnitPrice] * [Quantity]) FROM [Order Details])

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

Haut de page

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

"Salesperson"

Remplace une valeur texte par Commercial.

DébutProjet

#8/10/17#

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

Retrait

Yes

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

NuméroPièce

"PN" & [PartNumber]

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

TotalLigneArticle

[UnitPrice] * [Quantity]

Calcule le produit de PrixUnitaire et Quantité.

Transport

[Freight] * 1.5

Augmente les frais de transport de 50 %.

Ventes

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

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

Right([ShipPostalCode], 5)

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

PrixUnitaire

Nz([UnitPrice])

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

Haut de page

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 [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

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

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

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 Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>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 [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>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

Expressions de table

Dans les tables, les expressions sont principalement utilisées pour attribuer une valeur par défaut et pour créer une règle de validation.

Valeurs de champ par défaut

Lorsque vous concevez une base de données, vous pouvez 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 mentionnées dans le tableau suivant représentent des exemples de valeurs par défaut pour un champ ou un contrôle. Si un contrôle est lié à un champ inclus dans une table et que le champ possède une valeur par défaut, la valeur par défaut du contrôle est prioritaire.

Champ

Expression

Valeur de champ par défaut

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

Règles de validation de champ

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.

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 Or > 100

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

Like "K???"

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

< #1/1/2017#

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

>= #1/1/2017# And < #1/1/2008#

La date doit être en 2017.

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

Expressions de macro

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

[Counter]=10

Comme pour la propriété ValideSi, l’expression de la colonne Condition est une expression conditionnelle. Son résultat doit être une valeur True ou False. L’action intervient uniquement lorsque la condition est vraie.

Conseil    Pour forcer Access à ignorer temporairement l’action, entrez False comme condition. Cette action peut être utile lorsque vous tentez de rechercher des problèmes dans une macro.

Utilisez cette expression pour exécuter l’action

Si

[City]="Paris"

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

DCount("[OrderID]", "Orders") > 35

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

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 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.

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

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

Forms![Products]![UnitsInStock] < 5

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

IsNull([FirstName])

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.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 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.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>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.

MsgBox("Confirm changes?",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.

Haut de page

Voir aussi

Utiliser le Générateur d’expressions

Présentation des expressions

Créer une expression

Guide sur la syntaxe des expressions

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.

×