Cet article fournit de nombreux 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.
Contenu de cet article
Toutes les expressions de requête et de filtre
Faire correspondre des valeurs de texte |
Rechercher des données manquantes Faire correspondre des critères de date |
Champs calculés avec des sous-requêtes |
Formulaires et 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.
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 caractère d’espace (placé entre guillemets), puis 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 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 &. |
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 |
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 =[RequiredDate] - 2 renvoie une valeur 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 du 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 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([Subtotal])+Nz([Freight]).
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 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é d’état.
Expression |
Résultat |
---|---|
=Report![Invoice]![OrderID] |
Valeur d’un contrôle intitulé « RéfCommande » 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. |
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 par 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, Afficher des totaux de colonnes à l’aide d’une ligne de Totaux et Afficher des totaux de colonnes dans une feuille de données.
Fonctions d’agrégation SQL
Vous devez utiliser un type de fonction intitulé Fonction d’agrégation SQL ou 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 |
---|---|
=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]) |
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 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. |
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. |
Conditions applicables à deux valeurs uniquement
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 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. |
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 utilisez des critères dans 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. |
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 avez un champ Date/Heure intitulé DateRequise. L’expression =[RequiredDate] - 2 renvoie une valeur 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, Afficher des totaux de colonnes à l’aide d’une ligne de Totaux et Afficher des totaux de colonnes dans une feuille de données.
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. |
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. |
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. |
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 table 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. |
Faire correspondre des valeurs de texte
Les exemples d’expressions mentionnés dans ce table 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. |
NomSociété |
>="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. |
Faire correspondre des critères de date
Les expressions mentionnées dans le table 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 Mettre en forme le champ date et 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. |
Rechercher des données manquantes
Les expressions figurant dans le table 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). |
Faire correspondre des modèles d’enregistrement avec Like
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 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 utilisez l’expression Like "S*" pour rechercher tous les noms commençant par la lettre S. Pour plus d’informations, voir 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. |
Faire correspondre des lignes avec des agrégats SQL
Vous devez utiliser une fonction d’agrégation SQL ou 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 table 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 |
> (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. |
Quantity |
> 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. |
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 table 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. |
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 2017. |
Supprimée |
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. |
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 table 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. |
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 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 table suivant représentent les exemples de valeurs par défaut pour un champ ou un contrôle. 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 de champ par défaut |
---|---|---|
Quantity |
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 |
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 table 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.
Expressions de macro
Dans certains cas, vous pouvez souhaiter 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 souhaitez qu’une action s’exécute uniquement lorsque la valeur de la zone de texte Compteur est 10. Vous utilisez une expression pour définir la condition dans un bloc If :
[Counter]=10
Comme avec la propriété ValidationRule , l’expression dans un bloc If est une expression conditionnelle. Son résultat doit être soit une valeur True ou False. L’action prend place uniquement lorsque la condition a la valeur Vrai.
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. |