Exemples d'expressions

Cet article fournit des exemples d'expressions. Une expression est une combinaison d'opérateurs mathématiques ou logiques, de constantes, de fonctions, de champs de table, de contrôles et de propriétés, qui donne une valeur unique. Vous pouvez utiliser des expressions 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 explique les étapes fondamentales à suivre pour créer des expressions, il n'est pas exhaustif en termes d'utilisation des outils mis à votre disposition par Microsoft Office Access 2007. Pour plus d'informations sur la création d'expressions, voir l'article Créer une expression.

Dans cet article


Comprendre les expressions

Dans Office Access 2007, expression est synonyme de formule. Une expression est constituée de plusieurs éléments éventuels que vous pouvez utiliser seuls ou ensemble pour générer un résultat. Ces éléments comprennent les :

  • Identificateurs — noms de champs de table ou de contrôles dans des formulaires ou des états, ou propriétés de ces champs ou contrôles
  • Opérateurs, tels que les signes + (plus) ou - (moins)
  • Fonctions, telles que SUM ou AVG
  • Constantes — valeurs immuables , telles que des chaînes de texte ou des nombres qui ne sont pas calculés par une expression.

Vous pouvez utiliser les expressions de plusieurs façons — notamment pour effectuer un calcul, extraire la valeur d'un contrôle ou fournir des critères à une requête.

Pour plus d'informations sur le mode d'utilisation des expressions et leur emplacement, voir l'article Créer une expression.

Haut de la page Haut de la page

Exemples d'expressions utilisées dans les formulaires et les états

Les tableaux de cette section illustrent des exemples d'expressions qui calculent la valeur d'un contrôle située dans un formulaire ou un état. Pour créer un contrôle calculé, entrez une expression dans la propriété ControlSource du contrôle, plutôt que dans un champ de table ou une requête.

Les étapes suivantes expliquent comment entrer une expression dans une zone de texte dans un formulaire ou un é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 à modifier, et cliquez sur Mode CréationImage du bouton dans le menu contextuel.
  2. Dans le formulaire ou l'état, cliquez avec le bouton droit sur la zone de texte à modifier (et non sur son étiquette associée), puis cliquez sur Propriétés dans le menu contextuel.
  3. Cliquez sur l'onglet Tous ou Données, le cas échéant. Ces deux onglets fournissent la propriété Source contrôle.
  4. Cliquez sur la zone en regard de la propriété Source contrôle et tapez l'expression. Vous pouvez, par exemple, copier et coller une expression de la colonne Expression dans la table de la section suivante.
  5. Fermez la feuille de propriétés.

Expressions qui combinent ou manipulent le texte

Les expressions illustrées dans le tableau suivant utilisent les opérateurs & (Et commercial) et + (plus) pour combiner les chaînes de texte, pour exploiter les fonctions incorporées afin d'utiliser une chaîne de texte, ou pour utiliser du texte afin de créer un contrôle calculé.

Expression Résultat
="N/A" Affiche N/A.
=[Prénom] & " " & [Nom] Affiche les valeurs situées dans les champs de table Prénom et Nom. Dans cet exemple, l'opérateur & est utilisé pour combiner le champ Prénom, un espace (placé entre guillemets) et le champ Nom.
=Left([NomProduit], 1) Utilise la fonction Left pour afficher le premier caractère de la valeur d'un champ ou d'un contrôle appelée NomProduit.
=Right([CodeActif], 2) Utilise la fonction Right pour afficher les deux derniers caractères d'une valeur dans un champ ou contrôle appelée CodeActif.
=Trim([Adresse]) Utilise la fonction Trim pour afficher la valeur du contrôle Adresse, supprimant ainsi tout espace d'en-tête ou de fin.
=IIf(IsNull([Région]), [Ville] & " " & [CodePostal], [Ville] & " " & [Région] & " " & [CodePostal]) Utilise la fonction IIf pour afficher les valeurs des contrôles Ville et CodePostal si la valeur du contrôle Région est Null. Sinon, elle 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, elle affiche les valeurs des champs ou des contrôles Ville, Région et CodePostal, séparées par des espaces.

Une propagation Null signifie que les composants d'une expression sont Null et que toute l'expression l'est aussi. L'opérateur + prend en charge la propagation Null, à l'inverse de l'opérateur &.

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

Vous utilisez les propriétés Page et Pages pour afficher ou 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 en aperçu avant impression, ainsi elles n'apparaissent pas sur la feuille de propriétés pour le formulaire ou l'état. En règle générale, ces propriétés sont visibles lorsque vous placez une zone de texte dans une section d'en-tête ou de pied de page du formulaire ou de l'état, et lorsque vous utilisez une expression, notamment celles qui sont illustrées dans le tableau suivant.

Pour plus d'informations sur l'utilisation des en-têtes et des pieds de page dans les formulaires et les états, voir l'article 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] & " sur " & [Pages] & " pages" 1 sur 3 pages
=[Page] & "/" & [Pages] & " pages" 1/3 pages
=[Pays/région] & " - " & [Page] R-U - 1
=Format([Page], "000") 001
="Date d'impression : " & Date() Date d'impression : 12/31/07

Expressions qui effectuent des opérations arithmétiques

Vous pouvez utiliser des expressions pour ajouter, soustraire, multiplier et diviser les valeurs dans au moins deux champs ou contrôles. Vous pouvez également les utiliser pour effectuer des opérations arithmétiques en fonction des dates. Par exemple, imaginons que vous ayez un champ de table Date/Heure nommé DateRequise. Dans ce champ ou dans un contrôle qui lui est lié, l'expression = [DateRequise] - 2 renvoie une valeur Date/Heure qui correspond à deux jours avant les valeurs actuelles du champ DateRequise.

Expression Résultat
= [Sous-total] + [Transport] Somme des valeurs des champs ou contrôles Sous-total et Transport .
=[DateRequise]-[DateEnvoi] Intervalle entre les dates pour les champs ou contrôles DateRequise et DateEnvoi.
=[Prix]*1.06 Produit de la valeur du champ ou contrôle Prix et 1,06 (ajout de 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   En cas d'utilisation d'un opérateur arithmétique (+, -, *, et /) dans une expression, et si la valeur de l'un des contrôles y est Null, le résultat de toute l'expression est Null — c'est ce qu'on appelle la propagation Null. Si un enregistrement dans l'un des contrôles utilisés est Null, vous pouvez éviter la propagation Null en convertissant la valeur Null en valeur Zéro à l'aide de la fonction Nz — par exemple, =Nz([Sous-total])+Nz([Transport]).

Pour plus d'informations sur cette fonction, voir l'article Fonction Nz.

Expressions se rapportant à des valeurs dans d'autres champs ou contrôles

Vous avez parfois besoin d'une valeur résidant ailleurs, notamment dans un champ ou un contrôle d'un autre formulaire ou état. Vous pouvez utiliser une expression pour renvoyer la valeur à partir de cet emplacement.

Le tableau suivant illustre des exemples d'expressions que vous pouvez utiliser dans les contrôles calculés sur des formulaires.

Expression Résultat
=Forms![Commandes]![RéfCommande] Valeur du contrôle RéfCommande dans le formulaire Commandes.
=Forms![Commandes]![Sous-formulaire Commandes].Form![Sous-totalCommande] Valeur du contrôle Sous-totalCommande dans le sous-formulaire Commandes du formulaire Commandes.
=Forms![Commandes]![Sous-formulaire Commandes]![RéfProduit].Colonne(2) Valeur de la troisième colonne dans la liste RéfProduit à colonnes multiples, dans le sous-formulaire Sous-formulaire Commandes du formulaire Commandes. (0 désigne la première colonne, 1 la deuxième colonne et ainsi de suite).
=Forms![Commandes]![Sous-formulaire Commandes]![Prix] * 1,06 Produit de la valeur du contrôle Prix dans le sous-formulaire Sous-formulaire Commandes du formulaire Commandes par 1,06 (ajoute 6% à la valeur du contrôle Prix).
=Parent![RéfCommande] Valeur du contrôle RéfCommande dans le formulaire principal ou parent du sous-formulaire actif.

Les expressions du tableau suivant illustrent diverses façons d'utiliser les contrôles calculés dans des états. Les expressions se rapportent à la propriété État.

Pour plus d'informations sur cette propriété, voir l'article Propriété État.

Expression Résultat
=Report![Facture]![RéfCommande] Valeur d'un contrôle RéfCommande dans un état Facture.
=Report![Résumé]![Sous-état Résumé]![TotalVentes] Valeur du contrôle TotalVentes dans le sous-état Sous-état Résumé de l'état Résumé.
=Parent![RéfCommande] Valeur du contrôle RéfCommande dans l'état principal ou parent du sous-état actif.

Expressions qui comptent, additionnent et calculent la moyenne des valeurs

Vous pouvez utiliser une fonction d'agrégation pour calculer des valeurs de plusieurs champs ou contrôles. Vous pouvez, par exemple, calculer un total de groupe pour le pied de groupe dans un état, ou un sous-total de commande pour des éléments de ligne dans un formulaire. Vous pouvez également compter le nombre d'éléments dans plusieurs champs ou calculer une valeur moyenne.

Les expressions du tableau suivant illustrent certains modes d'utilisation des fonctions, notamment les fonctions Avg, Count et Sum.

Expression Description
=Avg([Transport]) Utilise la fonction Avg pour afficher les valeurs moyennes d'un champ de table ou d'un contrôle Transport.
=Count([RéfCommande]) Utilise la fonction Count pour afficher le nombre d'enregistrements dans le contrôle RéfCommande.
=Sum([Ventes]) Utilise la fonction Sum pour afficher la somme des valeurs du contrôle Ventes.
=Sum([Quantité]*[Prix]) Utilise la fonction Sum pour afficher la somme du produit des valeurs pour les contrôles Quantité et Prix.
=[Ventes]/Sum([Ventes])*100

Affiche le pourcentage des ventes, en divisant la valeur du contrôle Ventes par la somme de toutes les valeurs du contrôle Ventes.

 Remarque   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 des fonctions d'agrégation et sur le total des valeurs dans les champs et colonnes, voir les articles Sommer des données en utilisant une requête, Compter des données en utilisant une requête, Compter les lignes dans une feuille de données et Afficher les totaux de colonne dans une feuille de données.

Expressions qui comptent, additionnent et recherchent des valeurs de manière sélective en utilisant des fonctions de domaine

Vous utilisez une fonction de domaine pour une somme ou un comptage sélectif des valeurs. Un domaine se compose d'au moins un champ, ou contrôle dans un ou plusieurs formulaires ou états. Vous pouvez, par exemple, faire correspondre les valeurs d'un champ de table avec celles d'un contrôle dans un formulaire.

Expression Description
=DLookup("[NomContact]", "[Fournisseurs]", "[RéfFournisseur] = " & Forms("Fournisseurs")("[RéfFournisseur]")) Utilise la fonction DLookup pour renvoyer la valeur du champ NomContact dans la table Fournisseurs, où la valeur du champ RéfFournisseur correspond à celle du contrôle RéfFournisseur dans le formulaire Fournisseurs.
=DLookup("[NomContact]", "[Fournisseurs]", "[RéfFournisseur] = " & Forms![Nouveaux fournisseurs]![RéfFournisseur]) Utilise la fonction DLookup pour renvoyer la valeur du champ NomContact dans la table Fournisseurs, où la valeur du champ RéfFournisseur correspond à celle du contrôle RéfFournisseur dans le formulaire Nouveaux fournisseurs.
=DSum("[MontantCommande]", "[Commandes]", "[RéfClient] = 'RATTC'") Utilise la fonction DSum pour renvoyer la somme totale des valeurs dans le champ MontantCommande de la table Commande, où RéfClient correspond à RATTC.
=DCount("[Retraité]","[Biens]","[Retraité]=Oui") Utilise la fonction DCount pour renvoyer le nombre de valeurs Oui dans le champ Retraité (champ Oui/Non) dans la table Biens.

Expressions qui manipulent et calculent des dates

Le suivi des dates et heures est une activité fondamentale dans une base de données. Vous pouvez, par exemple, calculer le nombre de jours écoulés depuis la date de facturation pour évaluer vos comptes clients. Vous pouvez mettre en forme des dates et des heures de diverses façons, comme illustré dans le tableau suivant.

Expression Description
=Date() Utilise la fonction Date pour afficher la date actuelle dans le formulaire mm-jj-aa, où mm correspond au mois (1 à 12), jj correspond au jour (1 à 31), et aa correspond aux deux derniers chiffres de l'année (1980 à 2099).
=Format(Maintenant(), "ss") Utilise la fonction Format pour afficher le numéro de semaine dans l'année actuelle, où ss correspond aux semaines 1 à 53.
=DatePart("aaaa", [DateCommande]) Utilise la fonction DatePart pour afficher l'année à quatre chiffres de la valeur du contrôle DateCommande.
=DateAdd("a", -10, [DatePromesse]) Utilise la fonction DateAdd pour afficher une date qui précède la valeur du contrôle DatePromesse de 10 jours.
=DateDiff("j", [DateCommande], [DateEnvoi]) Utilise la fonction DateDiff pour afficher le nombre de jours entre les valeurs des contrôles DateCommande et DateEnvoi.
=[DateFacture] + 30 Utilise des opérations arithmétiques pour calculer la date 30 jours après celle du champ ou du contrôle DateFacture.

Expressions conditionnelles qui renvoient une valeur possible sur deux

Les exemples d'expressions illustrés dans le tableau suivant utilisent la fonction IIf pour renvoyer une valeur possible sur deux. Vous transmettez trois arguments à la fonction IIf. Le premier est une expression qui doit renvoyer une valeur True ou False. Le deuxième est la valeur à renvoyer si l'expression est vraie. Le troisième est la valeur à renvoyer si l'expression est fausse.

Expression Description
=IIf([Confirmé] = "Oui", "Commande confirmée", "Commande non confirmée") Utilise la fonction IIf (Immediate If) pour afficher le message Commande confirmée si la valeur du contrôle Confirmé est Oui. Si tel n'est pas le cas, le message Commande non confirmée s'affiche.
=IIf(IsNull([Pays/Région]), " ", [Pays]) Utilise les fonctions IIf et IsNull pour afficher une chaîne vide si la valeur du contrôle Pays/Région est Null. Si tel n'est pas le cas, la valeur du contrôle Pays/Région s'affiche.
=IIf(IsNull([Région]),[Ville]&" "& [CodePostal], [Ville]&" "&[Région]&" " &[CodePostal]) Utilise les fonctions IIf et IsNull pour afficher les valeurs des contrôles Ville et CodePostal si la valeur du contrôle Région est Null. Si tel n'est pas le cas, les valeurs des champs ou contrôles Ville, Région et CodePostal s'affichent.
=IIf(IsNull([DateRequise]) Ou IsNull([DateEnvoi]), "Vérifier une date manquante", [DateRequise] - [DateEnvoi]) Utilise les fonctions IIf et IsNull pour afficher le message Vérifier une date manquante si la soustraction entre DateEnvoi et DateRequise est Null. Si tel n'est pas le cas, l'intervalle entre les dates des contrôles DateRequise et DateEnvoi s'affiche.

Haut de la page Haut de la page

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

Cette section comprend des exemples d'expressions à utiliser pour créer un champ calculé dans une requête ou pour fournir des critères à une requête. Un champ calculé est une colonne de requête provenant d'une expression. Vous pouvez, par exemple, calculer une valeur, combiner des valeurs de texte, telles que des prénoms et des noms, ou mettre en forme une partie d'une date.

Vous utilisez des critères dans une requête pour limiter le nombre d'enregistrements à utiliser. Vous pouvez, par exemple, utiliser l'opérateur Between pour fournir une date de début et de fin, et pour limiter les résultats de votre requête aux commandes envoyées entre ces dates.

Les sections suivantes expliquent comment ajouter un champ calculé à une requête ; elles fournissent aussi des exemples d'expressions à utiliser dans des requêtes.

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

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la requête à modifier, et cliquez sur Mode Création dans le menu contextuel.
  2. Cliquez sur la cellule Champ de la colonne où vous souhaitez créer le champ calculé. Vous pouvez soit donner un nom au champ suivi de deux-points, soit taper votre expression. Si vous n'entrez pas de nom, Access ajoute Exprn:, où n est un nombre séquentiel.
  3. Tapez votre expression.

- ou -

Sous l'onglet Création, 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'expression, voir l'article Créer une expression.

Expressions qui manipulent du texte dans une requête ou un filtre

Les expressions illustrées dans le tableau suivant utilisent les opérateurs & et + pour combiner les chaînes de texte, pour exploiter les fonctions incorporées afin d'utiliser une chaîne de texte, ou pour utiliser 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.
Adresse2 : [Ville] & " " & [Région] & " " & [CodePostal] Crée un champ intitulé Adresse2 qui affiche les valeurs dans les champs Ville, Région et CodePostal, séparées par des espaces.
InitialeProduit :Left([NomProduit], 1) Crée un champ intitulé InitialeProduit, puis utilise la fonction Left pour afficher dans le champ InitialeProduit le premier caractère des valeurs dans le champ NomProduit.
CodeType : Right([CodeBiens], 2) Crée un champ intitulé CodeType, puis utilise la fonction Right pour afficher les deux derniers caractères de la valeur dans le champ CodeBiens.
Indicatif : Mid([Téléphone],2,3) Crée un champ intitulé Indicatif, puis utilise la fonction Mid pour afficher les trois caractères commençant par le deuxième caractère de la valeur dans le champ Téléphone.

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

Vous pouvez utiliser des expressions pour ajouter, soustraire, multiplier et diviser les valeurs dans au moins deux champs ou contrôles. Vous pouvez effectuer des opérations arithmétiques en fonction des dates. Par exemple, imaginons que vous ayez un champ Date/Heure nommé DateRequise. L'expression = [DateRequise] - 2 renvoie une valeur Date/Heure qui correspond à deux jours avant la valeur du champ DateRequise.

Expression Description
CoûtTotal : [Transport] * 1,1 Crée un champ intitulé CoûtTotal, puis affiche les frais de transport auxquels vous ajoutez 10 %.
MontantCommande : [Quantité] * [PrixUnitaire] Crée un champ intitulé MontantCommande, puis affiche le produit des valeurs dans les champs Quantité et PrixUnitaire.
DélaiExécution : [DateRequise] - [DateEnvoi] Crée un champ intitulé DélaiExécution, puis affiche la différence entre les valeurs dans les champs DateRequise et DateEnvoi.
StockTotal : [UnitésEnStock] + [UnitésCommandées] Crée un champ intitulé StockTotal, puis affiche la somme des valeurs dans les champs UnitésEnStock et UnitésCommandées.
PourcentageTransport : Sum([Transport])/Sum([Sous-total]) *100

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

Pour utiliser cette expression, vous devez convertir la requête Sélection en requête Totaux car vous devez utiliser la ligne Total dans la grille de création et définir la cellule Total de ce champ sur Expression.

Pour plus d'informations sur la création d'une requête Totaux, voir l'article Faire la somme de données en utilisant 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 des fonctions d'agrégation et sur le total des valeurs dans les champs et colonnes, voir les articles Faire la somme de données en utilisant une requête, Compter des données en utilisant une requête, Compter les lignes dans une feuille de données et Afficher les totaux de colonne dans une feuille de données.

Expressions qui manipulent et calculent des dates dans les champs calculés

Quasiment toutes les bases de données stockent des dates et des heures, et en assurent le suivi. Vous utilisez des dates et des heures dans Access en définissant les champs correspondants dans les tables sur le type Date/Heure. Access peut effectuer des calculs arithmétiques en fonction de dates. Vous pouvez, par exemple, calculer le nombre de jours écoulés depuis la date de facturation pour évaluer vos comptes clients.

Expression Description
TempsRetard : DateDiff("j", [DateCommande], [DateEnvoi]) Crée un champ intitulé TempsRetard, puis utilise la fonction DateDiff pour afficher le nombre de jours entre la date de commande et la date d'envoi.
AnnéeEmbauche : DatePart("aaaa",[DateEmbauche]) Crée un champ intitulé AnnéeEmbauche, puis utilise la fonction DatePart pour afficher l'année d'embauche pour chaque employé.
MoinsTrente : Date( )- 30 Crée un champ intitulé MoinsTrente, puis utilise la fonction Date pour afficher la date 30 jours avant la date actuelle.

Expressions qui comptent, additionnent et calculent la moyenne des valeurs à l'aide des fonctions d'agrégation SQL et des fonctions de domaine

Les expressions illustrées dans le tableau suivant utilisent les fonctions SQL (Structured Query Language) qui agrègent ou synthétisent des données. Ces fonctions sont couramment utilisées (par exemple, Sum, Count et Avg). On les appelle aussi des fonctions d'agrégation.

Outre les fonctions d'agrégation, Access met également à votre disposition les fonctions de domaine pour une somme ou un comptage sélectif des valeurs. Par exemple, vous pouvez compter uniquement les valeurs comprises dans une plage donnée ou rechercher une valeur dans une autre table. Les fonctions de domaine sont constituées de la fonction DSum, de la fonction DCount et de la fonction DAvg.

Pou un calcul des totaux, vous aurez souvent besoin de créer une requête Totaux. Par exemple, pour effectuer un résumé par groupe, vous devez utiliser une requête Totaux. Pour activer une requête Totaux dans la grille de création de requête, cliquez sur Totaux dans le menu Affichage.

Expression Description
NombreLignes : Count(*) Crée un champ intitulé NombreLignes, puis utilise la fonction Count pour compter le nombre d'enregistrements dans la requête, y compris ceux dont les champs sont Null (vides).
PourcentageTransport : Sum([Transport])/Sum([Sous-total]) *100

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

 Remarque   Vous devez utiliser cette expression avec une requête Totaux. 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 Totaux, voir l'article Faire la somme de données en utilisant une requête.

TransportMoyen : DAvg("[Transport]", "[Commandes]") Crée un champ intitulé TransportMoyen, puis utilise la fonction DAvg pour calculer les frais de transport moyens sur toutes les commandes combinées dans une requête Totaux.

Expressions à utiliser avec les champs aux informations manquantes (champs aux valeurs Null)

Les expressions suivantes utilisent les champs dont certaines informations peuvent faire défaut, notamment avec les valeurs Null (inconnues ou non définies). Vous tombez souvent sur des valeurs Null, telles qu'un prix inconnu pour un nouveau produit ou une valeur qu'un collègue a oublié d'ajouter à une commande. L'identification et le traitement des valeurs Null sont des opérations essentielles dans une base de données ; les expressions contenues dans le tableau suivant illustrent des méthodes courantes pour travailler avec les valeurs Null.

Expression Description
PaysRégionActuels :IIf(IsNull([PaysRégion]), " ", [PaysRégion]) Crée un champ intitulé PaysRégionActuels, puis utilise les fonctions IIf et IsNull pour y afficher une chaîne vide lorsque le champ PaysRégion contient une valeur Null. Si tel n'est pas le cas, le contenu du champ PaysRégion s'affiche.
DélaiExécution : IIf(IsNull([DateRequise] - [DateEnvoi]), "Vérifier une date manquante", [DateRequise] - [DateEnvoi]) Crée un champ intitulé DélaiExécution, puis utilise les fonctions IIf et IsNull pour afficher le message Vérifier une date manquante si la valeur du champ DateRequise ou DateEnvoi est Null. Si tel n'est pas le cas, la différence de dates s'affiche.
VentesSixMois : Nz([Tri1Ventes]) + Nz([Tri2Ventes]) Crée un champ intitulé VentesSixMois, puis affiche le total des valeurs dans les champs Tri1Ventes et Tri2Ventes en commençant par utiliser la fonction Nz pour convertir toutes les valeurs Null en valeurs Zéro.

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 dans le tableau suivant est un exemple de champ calculé qui provient 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 le champ NomCatégorie si RéfCatégorie de la table Catégories est identique à RéfCatégorie de la table Produits.

Expressions définissant les critères et limitant les enregistrements dans le jeu de résultats

Vous pouvez utiliser une expression pour définir des critères de requête. Access renvoie alors uniquement les lignes qui correspondent à ces critères. Les étapes décrites dans cette section fournissent des informations de base sur l'ajout de critères à une requête. Les tableaux de cette section illustrent des exemples de critères pour faire correspondre le texte et les valeurs de dates.

Ajouter des critères à une requête

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la requête à modifier, puis cliquez sur Mode CréationImage du bouton dans le menu contextuel.
  2. Dans la ligne Critères de la grille de création, cliquez sur la cellule de la colonne à utiliser, puis tapez vos critères.

Si vous souhaitez plus d'espace pour y taper une expression, appuyez sur MAJ + F2 pour afficher la zone Zoom.

- ou -

Sous l'onglet Création, dans le groupe Paramétrage de requête, cliquez sur GénérateurImage du bouton pour démarrer le Générateur d'expression et créer l'expression.

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

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

Expressions qui correspondent à des valeurs de texte complètes ou partielles

Les exemples d'expressions dans ce tableau illustrent les critères qui correspondent aux valeurs de texte complètes ou partielles.

Champ Expression Description
VilleExpédition "Londres" Affiche les commandes expédiées à Londres.
VilleExpédition "Londres" Or "Hedge End" Utilise l'opérateur Or pour afficher les commandes expédiées à Londres ou Hedge End.
PaysRégionExpédition In("Canada", "R-U") Utilise l'opérateur In pour afficher les commandes expédiées au Canada ou au Royaume-Uni.
PaysRégionExpédition Not "E-U" Utilise l'opérateur Not pour afficher les commandes expédiées dans d'autres pays et régions 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 les noms commencent par la lettre C.
NomSociété >="N" Affiche les commandes expédiées aux sociétés dont le nom commence par une lettre entre N et Z.
CodeProduit Right([CodeProduit], 2)="99" Utilise la fonction Right pour afficher les commandes dont les valeurs CodeProduit se terminent par 99.
NomExpédition Like "S*" Affiche les commandes expédiées aux clients dont le nom commence par la lettre S.

Expressions qui utilisent des dates pour faire correspondre les critères

Les expressions du tableau suivant illustrent l'utilisation des dates et des fonctions associées dans des expressions de critères.

Pour plus d'informations sur la saisie et l'utilisation des valeurs de dates, voir l'article Entrer une valeur Date ou Heure. Pour plus d'informations sur l'utilisation des fonctions dans ces exemples d'expressions, cliquez sur les liens d'accès aux diverses rubriques de fonctions.

Champ Expression Description
DateEnvoi #02.02.07# Affiche les commandes expédiées le 2 février 2007.
DateEnvoi Date() Affiche les commandes expédiées aujourd'hui.
DateRequise Between Date( ) And DateAdd("m", 3, Date( )) Utilise l'opérateur Between...And et les fonctions DateAdd et Date pour afficher les commandes requises entre la date du jour et les trois prochains mois.
DateCommande < Date() - 30 Utilise la fonction Date pour afficher les commandes datant de plus de 30 jours.
DateCommande Year([DateCommande])=2007 Utilise la fonction Year pour afficher les commandes datées de 2007.
DateCommande DatePart("t", [DateCommande])=4 Utilise la fonction DatePart pour afficher les commandes du quatrième trimestre calendaire.
DateCommande DateSerial(Year ([DateCommande]), Munthe([DateCommande])+1, 1)-1 Utilise les fonctions DateSerial, Year, et Month pour afficher les commandes pour le dernier jour de chaque mois.
DateCommande Year([Date commande]) = Année(Maintenant()) And Month([DateCommande]) = Mois(Maintenant()) Utilise les fonctions Year et Month, ainsi que l'opérateur And pour afficher les commandes de l'année ou du mois actuel.
DateEnvoi Between #05.01.07# And #10.01.07# Utilise l'opérateur Between...And pour afficher les commandes expédiées entre le 5-Jan-2007 et le 10-Jan-2007.
DateRequise Between Date( ) And DateAdd("M", 3, Date( )) Utilise l'opérateur Between...And pour afficher les commandes requises entre la date du jour et les trois prochains mois.
DateNaissance Month([DateNaissance])=Month(Date()) Utilise les fonctions Month et Date pour afficher les employés dont l'anniversaire est ce mois-ci.

Expressions qui correspondent à une valeur manquante (Null) ou une chaîne vide

Les expressions du tableau suivant utilisent des champs dont certaines informations risquent de manquer , notamment des champs contenant une valeur Null ou une chaîne vide. Une valeur Null indique l'absence d'informations, et non une valeur Zéro ou toute autre valeur. Access traite le cas des informations manquantes car ce concept est essentiel pour garantir l'intégrité d'une base de données. En réalité, il est fréquent que des informations manquent, même si ce n'est que temporairement, (par exemple, le prix d'un nouveau produit à définir). Ainsi, il est impératif qu'une base de données illustrant une entité réelle, telle qu'une société, puisse enregistrer des informations manquantes. Vous pouvez utiliser la fonction IsNull pour déterminer si un champ ou un contrôle contient une valeur Null, et vous pouvez utiliser la fonction Nz pour convertir une valeur Null en valeur Zéro.

Champ Expression Description
RégionExpédition Is Null Affiche les commandes pour les clients dont le champ RégionExpédition a une valeur Null (manquante).
RégionExpédition Is Not Null Affiche les commandes pour les clients dont le champ RégionExpédition contient une valeur.
Télécopie "" Affiche les commandes pour les clients sans télécopie, illustrées avec une chaîne vide dans le champ Télécopie plutôt qu'une valeur Null (manquante).

Expressions qui utilisent des modèles pour faire correspondre des enregistrements

L'opérateur Like offre une grande souplesse lorsque vous essayez de faire correspondre des lignes qui suivent un certain modèle, car vous pouvez utiliser la fonction Like avec des caractères génériques et définir des modèles qu'Access se chargera de faire correspondre. Par exemple, le caractère générique * (astérisque) correspond à une séquence de caractères quelconques et facilite la recherche de tous les noms commençant par une lettre. Par exemple, vous utilisez l'expression Like "S*" pour rechercher tous les noms qui commencent par la lettre S.

Pour plus d'informations, voir l'article Opérateur Like.

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 "*Importations" 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 comprennent la séquence de lettres ar.
NomExpédition Like "Maison Dewe?" Recherche tous les enregistrements dans le champ NomExpédition qui comprennent le mot Maison dans la première partie de la valeur, une chaîne de cinq lettres dont les quatre premières correspondent à Dewe, et une valeur inconnue pour la dernière lettre.
NomExpédition Not Like "A*" Recherche tous les enregistrements dans le champ NomExpédition qui ne commencent pas par la lettre A.

Expressions qui correspondent aux lignes basées sur le résultat d'une fonction de domaine

Vous utilisez une fonction de domaine lorsque vous devez additionner, compter ou calculer la moyenne des valeurs de manière sélective. Par exemple, vous ne souhaitez compter que les valeurs comprises dans une certaine plage ou les valeurs dont le résultat est Oui. Vous souhaitez aussi rechercher une valeur dans une autre table afin de l'afficher. Les exemples d'expressions illustrés dans le tableau suivant utilisent les fonctions de domaine pour effectuer un calcul avec un ensemble de valeurs ; le résultat sert de critère de requête.

Champ Expression Description
Transport > (DStDev("[Transport]", "Commandes") + DAvg("[Transport]", "Commandes")) Utilise les fonctions DStDev et DAvg pour afficher toutes les commandes dont les frais sont supérieurs à la moyenne plus l'écart-type pour les frais de transport.
Quantité > DAvg("[Quantité]", "[Détails commande]") Utilise la fonction DAvg pour afficher les produits dont les quantités commandées sont supérieures à la moyenne.

Expressions correspondantes basées sur les résultats des sous-requêtes

Vous utilisez une sous-requête, également appelée requête imbriquée, pour calculer une valeur servant de critère. Les exemples d'expressions illustrés dans le tableau suivant correspondent aux lignes basées sur les résultats renvoyés par une sous-requête.

Champ Expression Affiche
PrixUnitaire (SELECT [PrixUnitaire] FROM [Produits] WHERE [NomProduit] = "Aniseed Syrup") Produits dont le prix est identique à celui d'Aniseed Syrup.
PrixUnitaire >(SELECT AVG([PrixUnitaire]) FROM [Produits]) Produits dont le prix unitaire est supérieur à la moyenne.
Salaire > ALL (SELECT [Salaire] FROM [Employés] WHERE ([Fonction] LIKE "*Responsable*") OR ([Fonction] LIKE "*Vice-président*")) Salaire de chaque représentant commercial supérieur à celui de tous les employés dont la fonction comprend les termes Responsable ou Vice-président.
TotalCommande : [PrixUnitaire] * [Quantité] > (SELECT AVG([PrixUnitaire] * [Quantité]) FROM [Détails commande]) Commandes dont le total est supérieur à la moyenne.

Expressions à utiliser dans les requêtes Mise à jour

Vous utilisez une requête Mise à jour pour modifier les données dans plusieurs champs existants d'une base de données. Par exemple, vous pouvez remplacer des valeurs ou les supprimer complètement. Le tableau suivant illustre certaines modes d'utilisation des expressions dans les requêtes Mise à jour. Vous utilisez ces expressions dans la ligne Mise à jour, dans la grille de création de la requête pour le champ à mettre à jour.

Pour plus d'informations sur la création des requêtes Mise à jour, voir l'article Créer une requête Mise à jour.

Champ Expression Résultat
Titre "Représentant" Modifie du texte en Représentant.
DébutProjet #10.08.07# Modifie une date en 10-Août-07.
Retraité Oui Modifie une valeur Non d'un champ Oui/Non en Oui.
NuméroRéférence "NR" & [NuméroRéférence] Insère NR au début de chaque numéro de référence spécifié.
TotalÉlémentsLigne [PrixUnitaire] * [Quantité] Calcule le produit des champs PrixUnitaire et Quantité.
Transport [Transport] * 1,5 Augmente les frais de port de 50 pour cent.
Ventes DSum("[Quantité] * [PrixUnitaire]",
"Détails commande", "[RéfProduit]=" & [RéfProduit])
Met à jour les ventes totales en calculant le produit des champs Quantité et Prix unitaire, lorsque les valeurs RéfProduit dans la table active correspondent aux valeurs RéfProduit de la table Détails commande.
CodePostalExpédition Right([CodePostalExpédition], 5) Tronque les caractères les plus à gauche, en laissant les cinq caractères les plus à droite.
PrixUnitaire Nz([PrixUnitaire]) Modifie une valeur Null (inconnue ou non définie) par zéro (0) dans le champ PrixUnitaire.

Expressions utilisées dans des instructions SQL

SQL est un langage de requête utilisé dans Access. Chaque requête que vous créez en mode Création de requête peut également être exprimée à l'aide de SQL. Pour consulter l'instruction SQL pour une requête, cliquez sur Mode SQL dans le menu Affichage. Le tableau suivant illustre les exemples d'instructions SQL qui utilise une expression.

Instruction SQL qui utilise une expression Résultat
SELECT [Prénom],[Nom] FROM [Employés] WHERE [Nom]="Danseglio" Affiche les valeurs dans les champs Prénom et Nom pour les employés dont le nom est Danseglio.
SELECT [RéfProduit],[NomProduit] FROM [Produits] WHERE [RéfCatégorie]=Forms![Nouveaux produits]![RéfCatégorie]; Affiche les valeurs dans les champs RéfProduit et NomProduit de la table Produits pour les enregistrements dans lesquels la valeur RéfCatégorie correspond à la valeur RéfCatégorie spécifiée dans le formulaire Nouveaux produits ouvert.
SELECT Avg([PrixÉtendu]) AS [Prix étendu moyen] FROM [Détails commande étendus] WHERE [PrixÉtendu]>1000; Calcule le prix moyen étendu pour les commandes dont la valeur du champ PrixÉtendu est supérieure à 1 000, et l'affiche dans le champ Prix étendu moyen.
SELECT [RéfCatégorie], Count([RéfProduit]) AS [NombreRéfProduit] FROM [Produits] GROUP BY [RéfCatégorie] HAVING Count([RéfProduit])>10; Affiche le nombre total de produits pour les catégories comportant plus de 10 produits, dans un champ intitulé NombreRéfProduit.

Haut de la page Haut de la page

Exemples d'expressions de valeurs par défaut

Lorsque vous créez une base de données, vous pouvez affecter une valeur par défaut à un champ ou un contrôle. Access met ensuite à votre disposition la valeur par défaut lorsque vous créez un enregistrement contenant ce champ ou lorsque vous créez un objet contenant ce contrôle. Les expressions illustrées 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 dans une table

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la table à modifier, et cliquez sur Mode Création dans le menu contextuel.
  2. Cliquez sur le champ à modifier, et sous 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éerImage du bouton à droite de la zone de propriété pour créer une expression avec le Générateur d'expression.

Si un contrôle est lié au champ d'une table, et si le champ a une valeur par défaut, la valeur par défaut du contrôle est prioritaire.

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 vide pour indiquer que ce champ doit être vide par défaut plutôt que de contenir une valeur Null
Date commande Date( ) Date du jour
Échéance Date() +60 Échéance de 60 jours à compter de la date du jour

Haut de la page Haut de la page

Exemples d'expressions de règle de validation des champs

Vous pouvez créer une règle de validation pour un champ ou un contrôle à l'aide d'une expression. Access applique cette règle une fois que les données sont entrées dans le champ ou le contrôle. Pour créer une règle de validation, vous modifiez la propriété ValideSi du champ ou du contrôle. Pensez également à définir la propriété MessageSiErreur, qui contient le texte affiché par Access lorsque la règle de validation n'est pas respectée. Si vous ne définissez pas 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, et cliquez sur Mode Création dans le menu contextuel.
  2. Cliquez sur le champ à modifier.
  3. Cliquez sur la zone de propriété ValideSi, située dans la section inférieure du Concepteur de tables.
  4. Tapez l'expression, ou cliquez sur le bouton CréerImage du bouton à droite de la zone de propriété pour créer une expression avec le Générateur d'expression.

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

Les exemples du 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 Entrez une valeur autre que zéro.
0 Or > 100 La valeur doit être égale à 0 ou supérieure à 100.
Like "K???" La valeur doit comporter quatre caractères commençant par la lettre K.
< #01.01.07# Entrez une date avant 1/1/2007.
>= #1/1/2007# And < #1/1/2008# La date doit être en 2007.

Pour plus d'informations sur la validation des données, voir l'article Créer une règle de validation pour valider des données dans un champ.

Haut de la page Haut de la page

Exemples d'expressions de condition de macros

Dans certains cas, vous souhaiterez exécuter une ou plusieurs actions dans une macro, si une certaine condition est remplie. Imaginons, par exemple, que vous souhaitiez exécuter une action uniquement si la valeur de la zone de texte Compteur est 10. Vous utilisez 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, et cliquez sur Mode Création dans le menu contextuel.
  2. Si la colonne Condition n'est pas visible dans le Concepteur de macros, cliquez sur Conditions sous l'onglet Création du groupe Afficher/Masquer.
  3. Cliquez sur la cellule Condition pour l'action de macro à modifier, puis tapez l'expression conditionnelle.
  4. Enregistrez vos modifications et fermez la macro.

Comme pour la propriété ValideSi, l'expression de la colonne Condition est une expression conditionnelle. Elle doit se solder par la valeur True ou False. Cette action survient uniquement lorsque la condition est vraie.

Utilisez cette expression pour exécuter l'action If
[Ville]="Paris" Paris est la valeur Ville dans le champ du formulaire, à partir duquel la macro est exécutée.
DCount("[RéfCommande]", "Commandes") > 35 Le champ RéfCommande de la table Commandes contient plus de 35 entrées.
DCount("*", "[Détails commande]", "[RéfCommande]=" & Forms![Commandes]![RéfCommande]) > 3 Il existe plus de trois entrées dans la table Détails commande pour lesquelles le champ RéfCommande de la table correspond au champ RéfCommande du formulaire Commandes.
[DateEnvoi] Between #2-Fév-2007# And #2-Mar-2007# La valeur du champ DateEnvoi du formulaire à partir duquel la macro est exécutée n'est ni antérieure au 2-Fév-2007 ni postérieure au 2-Mar-2007.
Forms![Produits]![UnitésEnStock] < 5 La valeur du champ UnitésEnStock du formulaire Produits est inférieure à 5.
IsNull([Prénom]) La valeur Prénom sur le formulaire à partir duquel la macro est exécutée est Null (aucune valeur). Cette expression est équivalente à [Prénom] Is Null.
[PaysRégion]="R-U" And Forms![TotalVentes]![TotalCmds] > 100 La valeur du champ PaysRégion sur le formulaire à partir duquel la macro est exécutée est Royaume-Uni, et la valeur du champ TotalCmds sur le formulaire TotalVentes est supérieure à 100.
[PaysRégion] In ("France", "Italie", "Espagne") And Len([CodePostal])<>5 La valeur du champ PaysRégion sur le formulaire à partir duquel la macro est exécutée est France, Italie ou Espagne et le code postal contient moins de 5 caractères.
MsgBox ("Confirmer modifications ?" ,1) = 1 Vous cliquez sur OK dans une boîte de dialogue affichée par la fonction MsgBox. Si vous cliquez sur Annuler dans cette boîte de dialogue, Access ignore l'action.

 Remarque   Pour qu'Access ignore provisoirement une action, entrez False comme condition. Ceci peut être utile lorsque vous essayez de résoudre des problèmes dans une macro.

Pour plus d'informations sur les macros, voir les articles Principes fondamentaux des macros dans Access 2007 et Créer une macro.

Haut de la page Haut de la page

 
 
S'applique à :
Access 2007