Présentation de SQL dans Access

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Lorsque vous souhaitez extraire des données d’une base de données, vous demandez pour les données à l’aide de Structured Query Language ou SQL. SQL est une langue de l’ordinateur qui ressemble beaucoup à anglais comprennent les programmes de base de données. Connaître SQL est important, car chaque requête dans Microsoft Access utilise SQL. Comprendre le fonctionne de SQL peut vous aider à créer des requêtes mieux et pouvez facilement vous permettant de corriger une requête lorsque les résultats que vous souhaitez n’est retournée.

Remarque : Vous ne pouvez pas modifier de code SQL pour une requête sur le Web.

Contenu de cet article

Qu’est SQL ?

Base clauses SQL : SELECT, FROM et WHERE

Trier les résultats : ORDER BY

Utilisation des données synthétisées : GROUP BY et HAVING

Combiner les résultats de la requête : UNION

En savoir plus sur la clause SELECT

En savoir plus sur la clause FROM

En savoir plus sur la clause WHERE

Présentation de SQL

SQL est une langue de l’ordinateur pour utiliser des ensembles de faits et les relations entre elles. Programmes de base de données relationnelles, tel que Access, utilisent SQL pour travailler avec des données. Tels que de nombreuses langues de l’ordinateur, SQL est une norme internationale reconnu par les organismes de normalisation tels que ISO et ANSI.

Vous utilisez SQL pour décrire des ensembles de données qui peuvent vous aider à répondre aux questions. Lorsque vous utilisez SQL, vous devez utiliser la syntaxe correcte. Syntaxe est l’ensemble de règles par lequel les éléments d’une langue sont combinées correctement. La syntaxe SQL est basée sur la syntaxe anglais et utilise la plupart des mêmes éléments de Visual Basic pour la syntaxe d’Applications (VBA).

Par exemple, une instruction SQL simple qui permet d’extraire une liste de noms de contacts dont le prénom est Marie peut ressembler à ce qui suit :

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Remarque : SQL n’est pas utilisé uniquement pour manipuler les données, mais également pour la création et modification de la conception des objets de base de données, tels que des tables. La partie de SQL utilisée pour la création et modification des objets de base de données est appelée définition des données (Definition language). Cette rubrique n’aborde pas DDL. Pour plus d’informations, voir l’article créer ou modifier des tables ou index à l’aide d’une requête Définition des données.

Instructions SELECT

Pour décrire un jeu de données avec SQL, vous devez écrire une instruction SELECT. Cette instruction contient la description complète du jeu de données que vous souhaitez extraire d’une base de données. Elle contient les informations relatives aux éléments suivants :

  • Les tables qui contiennent les données.

  • La façon dont les différentes sources sont liées.

  • Les champs ou les calculs qui génèreront les données.

  • Critères de données doivent correspondre pour être inclus.

  • Les conditions dans lesquelles trier les résultats et la méthode de tri.

Clauses SQL

Tout comme une phrase contient des propositions, une instruction SQL contient des clauses. Chaque clause occupe une fonction dans l’instruction SQL. Certaines clauses sont obligatoires dans une instruction SELECT. Le tableau qui suit présente la liste des clauses SQL les plus courantes.

Clause SQL

Fonction

Obligatoire

SELECT

Génère la liste des champs qui contiennent les données pertinentes.

Oui

FROM

Génère la liste des tables qui contiennent les champs répertoriés dans la clause SELECT.

Oui

WHERE

Spécifie les critères de champs auxquels doit répondre chaque enregistrement pour être inclus dans les résultats.

Non

ORDER BY

Spécifie comment trier les résultats.

Non

GROUP BY

Dans une instruction SQL qui contient des fonctions d’agrégation, génère la liste des champs qui ne sont pas répertoriés dans la clause SELECT.

Uniquement en présence de tels champs

HAVING

Dans une instruction SQL qui contient des fonctions d’agrégation, spécifie les conditions qui s’appliquent aux champs qui sont répertoriés dans l’instruction SELECT.

Non

Termes SQL

Chaque clause SQL est composée de termes — comme dans des dialogues. Le tableau qui suit présente la liste des types de termes SQL.

Terme SQL

Comparable aux dialogues

Définition

Exemple

identificateur

nom

Nom utilisé pour identifier un objet de base de données, tel que le nom d’un champ.

Clients.[Numéro téléphone]

opérateur

verbe ou adverbe

Mot-clé qui représente une action ou la modifie.

AS

constante

nom

Valeur qui ne change pas, telle qu’un nombre ou la valeur NULL.

42

expression

adjectif

Combinaison d’identificateurs, d’opérateurs, de constantes et de fonctions qui correspondent à une valeur unique.

>= Produits.[Prix unitaire]

Haut de la Page

Clauses SQL de base : SELECT, FROM et WHERE

La forme générale d’une instruction SQL est la suivante :

SELECT field_1
FROM table_1
WHERE criterion_1
;

Remarques : 

  • Dans une instruction SQL, Access ignore les sauts de ligne. Toutefois, envisagez d’utiliser une ligne pour chaque clause, afin que les instructions SQL soient plus lisibles.

  • Chaque instruction SELECT se termine par un point-virgule (;). Le point-virgule peut apparaître à la fin de la dernière clause ou seul sur une ligne à la fin de l’instruction SQL.

Exemple dans Access

L’exemple montre à quoi peut ressembler une instruction SQL dans Access pour une requête SELECT simple :

Onglet d’objet SQL montrant une instruction SELECT

1. Clause SELECT

2. Clause FROM

3. Clause WHERE

L’instruction SQL présentée en exemple dit « Sélectionner les données stockées dans les champs Adresse de messagerie et Société dans la table Contacts, et en particulier, les enregistrements dans lesquels la valeur du champ Ville est Paris ».

Étudions cet exemple, clause par clause, pour voir comment fonctionne la syntaxe SQL.

Clause SELECT

SELECT [E-mail Address], Company

Il s’agit de la clause SELECT qui contient un opérateur (SELECT) suivi de deux identificateurs ([Adresse de messagerie] et (Société)).

Si un identificateur contient des espaces ou des caractères spéciaux (« Adresse de messagerie » par exemple), il doit être entouré de crochets.

Une clause SELECT ne doit pas nécessairement indiquer les tables qui contiennent les champs et ne peut pas spécifier les conditions auxquelles les données doivent correspondre pour être incluses.

La clause SELECT apparaît toujours avant la clause FROM dans une instruction SELECT.

Clause FROM

FROM Contacts

Il s’agit de la clause FROM qui contient un opérateur (FROM) suivi d’un identificateur (Contacts).

Une clause FROM ne génère pas la liste des champs à sélectionner.

Clause WHERE

WHERE City="Seattle"

Il s’agit de la clause WHERE qui contient un opérateur (WHERE) suivi d’une expression (Ville="Paris").

Remarque : Contrairement aux clauses SELECT et FROM, la clause WHERE n’est pas obligatoire dans une instruction SELECT.

Vous pouvez effectuer un grand nombre des actions SQL vous permet d’effectuer à l’aide SELECT, FROM, clause WHERE. Plus d’informations sur la façon de vous utilisez ces clauses sont présentées dans les sections suivantes à la fin de cet article :

En savoir plus sur la clause SELECT

En savoir plus sur la clause FROM

En savoir plus sur la clause WHERE

Tri des résultats : ORDER BY

Tout comme Microsoft Office Excel, Access permet de trier les résultats des requêtes dans une feuille de données. Vous pouvez également spécifier dans la requête comment les résultats doivent être triés une fois la requête exécutée, en utilisant une clause ORDER BY. Si vous utilisez une clause ORDER BY, il s’agira de la dernière clause dans l’instruction SQL.

Une clause ORDER BY contient la liste des champs à utiliser pour le tri, dans le même ordre que celui dans lequel vous souhaitez appliquer le tri.

Supposons par exemple, que vous souhaitiez que vos résultats soient triés d’abord sur la valeur du champ Société par ordre décroissant et,  — si certains enregistrements contiennent la même valeur pour le champ Société — qu’ils soient triés ensuite sur les valeurs du champ Adresse de messagerie par ordre croissant. La clause ORDER BY doit alors ressembler à ce qui suit :

ORDER BY Company DESC, [E-mail Address]

Remarque : Par défaut, Access trie les valeurs par ordre croissant (A-Z, de la plus petite à la plus grande). Pour trier les valeurs par ordre décroissant, utilisez le mot-clé DESC.

Pour plus d’informations sur la clause ORDER BY, consultez la rubrique Clause ORDER BY.

Haut de la Page

Utilisation de données de synthèse : GROUP BY et HAVING

Vous pouvez parfois être amené à utiliser des données de synthèse telles que le total des ventes mensuelles ou les articles au prix le plus élevé dans un stock. Si tel est le cas, vous devez appliquer une fonction d’agrégation à un champ dans votre clause SELECT. Par exemple, si vous souhaitez que votre requête affiche le nombre d’adresses de messagerie existant pour chaque société, votre clause SELECT ressemblera à ce qui suit :

SELECT COUNT([E-mail Address]), Company

Les fonctions d’agrégation que vous pouvez utiliser dépendent du type de données qui se trouve dans le champ ou l’expression que vous voulez utiliser. Pour plus d’informations sur les fonctions d’agrégation disponibles, voir l’article Fonctions d’agrégation SQL.

Indication des champs qui ne sont pas utilisés dans une fonction d’agrégation : clause GROUP BY

Lorsque vous utilisez des fonctions d’agrégation, vous devez généralement créer aussi une clause GROUP BY. Une clause GROUP BY génère la liste de tous les champs auxquels vous n’appliquez pas de fonction d’agrégation. Si vous appliquez des fonctions d’agrégation à l’ensemble des champs dans une requête, il n’est pas nécessaire de créer la clause GROUP BY.

Une clause GROUP BY suit immédiatement la clause WHERE, ou la clause FROM s’il n’existe pas de clause WHERE. Une clause GROUP BY génère la liste des champs tels qu’ils apparaissent dans la clause SELECT.

Par exemple, si nous repartons de l’exemple précédent, si votre clause SELECT applique une fonction d’agrégation au champ Adresse de messagerie et non au champ Société, votre clause GROUP BY ressemblera à ce qui suit :

GROUP BY Company

Pour plus d’informations sur la clause GROUP BY, consultez la rubrique GROUP BY Clause.

Limiter les valeurs agrégées à l’aide de critères de groupe : la Clause HAVING

Si vous souhaitez utiliser des critères pour limiter vos résultats, mais si le champ auquel appliquer ces critères est utilisé dans une fonction d’agrégation, vous ne pouvez pas utiliser une clause WHERE. Vous devez utiliser une clause HAVING à la place. Une clause HAVING fonctionne comme une clause WHERE, mais elle est utilisée pour les données d’agrégation.

Supposons par exemple, que vous utilisiez la fonction COUNT (NB) (qui renvoie un nombre de lignes) avec le premier champ dans votre clause SELECT :

SELECT COUNT([E-mail Address]), Company

Si vous souhaitez que la requête restreigne les résultats sur la base de la valeur de cette fonction NB, vous ne pouvez pas utiliser de critère pour ce champ dans la clause WHERE. Vous devez placer le critère dans une clause HAVING à la place. Par exemple, si vous souhaitez que votre requête retourne uniquement des lignes si plusieurs adresses de messagerie sont associées à la société, votre clause HAVING ressemblera à ce qui suit :

HAVING COUNT([E-mail Address])>1

Remarque : Une requête peut comprendre une clause WHERE et une clause HAVING — les critères pour les champs qui ne sont pas utilisés dans une fonction d’agrégation sont utilisés dans la clause WHERE et ceux qui sont utilisés avec des fonctions d’agrégation sont utilisés dans la clause HAVING.

Pour plus d’informations sur la clause HAVING, consultez la rubrique Clause HAVING.

Haut de la Page

Combinaison de résultats de requêtes : UNION

Lorsque vous voulez passer en revue l’ensemble des données renvoyées par plusieurs requêtes de sélection similaires, sous la forme d’un jeu combiné, vous utilisez l’opérateur UNION.

L’opérateur UNION permet de combiner deux instructions SELECT en une seule. Les instructions SELECT que vous combinez doivent posséder le même nombre de champs de destination, dans le même ordre et avec des types de données identiques ou compatibles. Lorsque vous exécutez la requête, les données de chaque jeu de champs correspondants sont combinées dans un champ de destination, de sorte que le résultat de la requête dispose du même nombre de champs que chacune des instructions SELECT.

Remarque : Pour les besoins d’une requête utilisant l’opérateur UNION, les types de données numérique et texte sont compatibles.

Lorsque vous utilisez l’opérateur UNION, vous pouvez également spécifier si les résultats de la requête doivent inclure des lignes en double, lorsqu’elles existent, en utilisant le mot-clé ALL.

La syntaxe SQL de base pour une requête avec l’opérateur UNION, combinant deux instructions SELECT, est la suivante :

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Supposons, par exemple, que vous disposiez d’une table nommée Produits et d’une autre table appelée Services. Les deux tables possèdent des champs qui contiennent le nom du produit ou du service, le prix, la disponibilité d’un engagement ou d’une garantie et indiquent si vous offrez le produit ou le service de manière exclusive. Bien que la table Produits stocke des informations d’engagement et que la table Services stocke des informations de garantie, les informations de base sont identiques (si un produit ou un service particulier propose un engagement sur la qualité). Vous pouvez utiliser une requête avec un opérateur UNION, telle que celle qui suit, pour combiner les quatre champs des deux tables :

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Pour plus d’informations sur la combinaison des instructions SELECT en utilisant l’opérateur UNION, voir l’article combiner les résultats de plusieurs requêtes sélection à l’aide d’une requête union.

Haut de la Page

En savoir plus sur la clause SELECT

Dans une instruction SELECT, la clause SELECT répertorie les champs qui contiennent des données que vous souhaitez utiliser.

Utiliser des crochets pour encadrer les identificateurs

Vous pouvez utiliser des crochets pour encadrer le nom d’un champ dans une clause SELECT. Si celui-ci ne contient pas d’espace ou de caractère spécial (une marque de ponctuation par exemple), les crochets sont facultatifs. Dans le cas contraire, vous devez les utiliser.

Conseil : Un nom qui contient des espaces est plus facile à lire et pouvez gagner du temps lorsque vous concevez des formulaires et états, mais pouvez devrez faire vous tapez plus lorsque vous écrivez des instructions SQL. Vous devez prendre en compte ce fait lorsque vous nommez des objets dans votre base de données.

Si votre instruction SQL contient plusieurs champs portant le même nom, vous devez ajouter le nom de la source de données de chaque champ au nom du champ dans la clause SELECT. Vous devez utiliser pour la source de données le même nom que celui utilisé dans la clause FROM.

Sélectionner tous les champs

Lorsque vous souhaitez inclure tous les champs d’une source de données, vous pouvez répertorier tous les champs individuellement dans la clause SELECT, ou utiliser le caractère générique astérisque (*). Lorsque vous utilisez un astérisque, Access détermine, au moment de l’exécution de la requête, les champs que la source de données contient et inclut ces champs dans la requête. Cela permet de conserver les requêtes à jour si de nouveaux champs sont ajoutés à la source de données.

Vous pouvez utiliser l’astérisque avec une ou plusieurs sources de données dans une instruction SQL. Si vous utilisez ce caractère et qu’il existe plusieurs sources de données, vous devez inclure le nom de la source de données et l’astérisque, de façon à ce qu’Access puisse déterminer la source de données à partir de laquelle inclure tous les champs.

Par exemple, supposons que vous souhaitiez sélectionner tous les champs de la table Commandes mais uniquement le champ Adresse de messagerie de la table Contacts. Votre clause SELECT ressemble à ce qui suit :

SELECT Orders.*, Contacts.[E-mail Address]

Remarque : Notez à quel moment vous utilisez le caractère astérisque. Si de nouveaux champs sont ajoutés ultérieurement à la source de données et si vous ne l’aviez pas prévu, votre requête risque de donner des résultats inattendus.

Sélectionner des valeurs distinctes

Si vous savez que votre instruction va sélectionner des données redondantes et que vous préférez obtenir uniquement des valeurs distinctes, vous pouvez utiliser le mot-clé DISTINCT dans votre clause SELECT. Par exemple, supposons que vos clients représentent des intérêts différents mais que certains possèdent le même numéro de téléphone. Si vous voulez être sûr de voir uniquement chaque numéro de téléphone une seule fois, votre clause SELECT doit ressembler à ce qui suit :

SELECT DISTINCT [txtCustomerPhone]

Utiliser des noms de remplacement pour les champs ou les expressions : mot-clé AS

Vous pouvez modifier l’intitulé affiché pour les champs dans le mode Feuille de données en utilisant le mot-clé AS et un alias de champ dans votre clause SELECT. Un alias de champ est un nom que vous affectez à un champ dans une requête pour faciliter la lecture des résultats. Par exemple, si vous souhaitez sélectionner des données à partir d’un champ nommé txtTélClient et que ce champ contient les numéros de téléphone des clients, vous pouvez faciliter la lecture des résultats en utilisant un alias de champ dans votre instruction SELECT en procédant comme suit :

SELECT [txtCustPhone] AS [Customer Phone]

Remarque : Vous devez utiliser un alias de champ avec une expression dans une clause SELECT.

Sélectionner au moyen d’une expression

Parfois, vous souhaitez examiner les calculs basés sur vos données ou récupérez qu’une partie des données d’un champ. Par exemple, supposons que vous voulez retourne l’année de naissance clients, en fonction des données dans le champ date de naissance dans votre base de données. Votre clause SELECT peuvent se présenter comme suit :

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Cette expression se compose de la DatePart , fonction et deux arguments : « AAAA » (une constante) et [date de naissance] (un identificateur).

Vous pouvez utiliser n’importe quelle expression valide comme champ, si l’expression renvoie une valeur unique lorsqu’une valeur unique est entrée.

Haut de la Page

En savoir plus sur la clause FROM

Dans une instruction SELECT, la clause FROM spécifie les tables ou les requêtes qui contiennent les données qui seront utilisées par la clause SELECT.

Supposons que vous souhaitiez connaître le numéro de téléphone d’un client. Si la table qui contient le champ qui stocke cette donnée est nommée tblCustomer, alors la clause FROM se présentera comme suit :

FROM tblCustomer

Utiliser des crochets pour encadrer les identificateurs

Vous pouvez utiliser des crochets pour encadrer le nom. Si celui-ci ne contient pas d’espace ou de caractère spécial (une marque de ponctuation par exemple), les crochets sont facultatifs. Dans le cas contraire, vous devez les utiliser.

Conseil : Un nom qui contient des espaces est plus facile à lire et vous gagnez du temps lorsque vous concevez des formulaires et états, mais vous risquez de rendre plus tapez lorsque vous écrivez des instructions SQL. Vous devez prendre en compte ce fait lorsque vous nommez des objets dans votre base de données.

Utiliser des noms de substitution pour les sources de données

Vous pouvez utiliser un nom différent pour vous référer à une source de données dans une instruction SELECT. Pour cela, vous devez utiliser un alias de table dans votre clause FROM. Un alias est un nom que vous affectez à une source de données dans une requête lorsque vous utilisez une expression comme source de données, ou pour faciliter la saisie et la lecture d’une instruction SQL. Cela peut s’avérer particulièrement utile si le nom de la source de données est long et difficile à taper, et plus encore si plusieurs champs portent le même nom dans plusieurs tables différentes.

Par exemple, si vous souhaitez sélectionner des données dans deux champs, tous deux nommés ID, l’un provenant de la table tblClient et l’autre de la table tblCommande, la clause SELECT pourra se présenter comme suit :

SELECT [tblCustomer].[ID], [tblOrder].[ID]

L’utilisation d’un alias de table dans votre clause FROM facilite la saisie de la requête. Votre clause FROM, avec des alias de table, pourra ressembler à ce qui suit :

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Vous pouvez utiliser ces alias de table dans votre clause SELECT comme suit :

SELECT [C].[ID], [O].[ID]

Remarque : Lorsque vous utilisez un alias de table, vous pouvez vous référer à la source de données dans votre instruction SQL en utilisant son alias ou son nom complet.

Joindre des données liées

Si vous devez combiner des paires d’enregistrements issus de deux sources de données dans un seul enregistrement dans un résultat de requête, vous pouvez effectuer une jointure. Une jointure est une opération SQL qui spécifie la façon dont deux sources de données sont liées et si les données d’une source doivent être incluses lorsqu’aucune donnée correspondante n’existe dans l’autre source de données.

Pour combiner les données de deux sources de données, vous pouvez effectuer une opération de jointure sur le champ qu’elles possèdent en commun. Lorsque les valeurs stockées dans ce champ correspondent, les données des enregistrements sont combinées dans les résultats.

En plus de la combinaison des données, vous pouvez également utiliser une jointure pour spécifier si les enregistrements de l’une ou l’autre table doivent être inclus lorsqu’aucun enregistrement correspondant n’existe dans la table liée.

Par exemple, supposons que vous souhaitez utiliser des données de deux tables dans une requête : tblCustomer et tblOrder. Les deux tables ont un champ, CustomerID, qui identifie un client. Chaque enregistrement dans la table tblCustomer peut-être avoir un ou plusieurs enregistrements correspondants dans la table tblOrder, et les valeurs correspondantes peuvent être déterminés par les valeurs dans le champ CustomerID.

Si vous souhaitez joindre les tables de façon à ce que la requête combine leurs enregistrements et si vous excluez les enregistrements des tables lorsqu’il n’existe aucune correspondance dans l’autre table, votre clause FROM peut se présenter ainsi (le saut de ligne a été rajouté ici par souci de lisibilité) :

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Dans Microsoft Office Access, les jointures se font dans la clause FROM d’une instruction SELECT. Il existe deux types de jointures : internes et externes. Les sections qui suivent fournissent des explications sur ces deux types de jointures.

Jointures internes

Les jointures internes sont les types de jointure les plus courants. Lorsqu’une requête est exécutée avec une jointure interne, les seuls enregistrements inclus dans les résultats de la requête sont ceux pour lesquels existe une valeur commune dans les deux tables jointes.

La syntaxe d’une jointure interne est la suivante (le saut de ligne a été ajouté ici par souci de lisibilité) :

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Le tableau suivant décrit les différentes parties d’une opération INNER JOIN.

Partie

Description

table1, table2

Nom des tables dont les enregistrements sont combinés.

champ1, champ2

Noms des champs joints. S'ils ne sont pas numériques, les champs doivent avoir le même type de données et contenir des données de nature identique, mais leurs noms peuvent être différents.

oprcomp

Tout opérateur de comparaison relationnel tel que : "=," "<," ">," "<=," ">=," ou "<>."

Jointures externes

Les jointures externes sont similaires aux jointures internes car elles indiquent également comment combiner des données issues de deux sources. Elles sont différentes car elles spécifient si les données doivent être incluses lorsqu’aucune valeur commune n’existe. Les jointures externes sont directionnelles : vous pouvez choisir d’inclure tous les enregistrements de la première source de données spécifiée dans la jointure (une jointure gauche) ou d’inclure tous les enregistrements de la seconde source de données dans la jointure (une jointure droite).

La syntaxe d’une jointure externe est la suivante :

À partir de table1 [gauche | RIGHT] JOIN table2
sur table1.field1compopr table2.field2

Le tableau suivant décrit les différentes parties des opérations LEFT JOIN et RIGHT JOIN.

Partie

Description

table1, table2

Nom des tables dont les enregistrements sont combinés.

champ1, champ2

Noms des champs joints. Les champs doivent avoir le même type de données et contenir des données de nature identique, mais leurs noms doivent être différents.

oprcomp

Tout opérateur de comparaison relationnel tel que : "=," "<," ">," "<=," ">=," ou "<>."

Pour plus d’informations sur les jointures, voir l’article joindre des tables et requêtes.

Haut de la Page

En savoir plus sur la clause WHERE

Lorsque vous souhaitez utiliser des données pour limiter le nombre d’enregistrements renvoyés dans une requête, vous utilisez requête critères dans la clause WHERE d’une instruction SELECT. Un critère de requête est semblable à une formule : il s’agit d’une chaîne qui comprend des références à des champs, des opérateurs et des constantes. Critères de requête constituent un type de expression.

Le tableau suivant donne quelques exemple de critères et explique leur fonctionnement.

Critères

Description

>25 et <50

Ce critère s’applique au champ Numérique, comme Prix ou UnitésEnStock. Seuls les enregistrements dont le champ contient une valeur supérieure à 25 et inférieure à 50 sont renvoyés.

DiffDate ("aaaa", [DateNaissance], Date()) > 30

Ce critère s’applique à un champ Date/Heure, comme DateNaissance. Seuls les enregistrements dont le nombre d’années entre la date de naissance d’une personne et la date du jour est supérieur à 30 sont inclus dans les résultats de la requête.

Est Null

Ce critère peut s’appliquer à tout type de champ. Il permet d’afficher les enregistrements dont la valeur de champ est nulle.

Comme le montre le précédent tableau, les critères peuvent être très différents les uns des autres selon le type de données du champ auxquels ils s’appliquent et les conditions que vous avez spécifiées. Certains peuvent être simples et utiliser des opérateurs et des constantes de base, d’autres peuvent être complexes et utiliser des fonctions et des opérateurs spéciaux, et inclure des références à des champs.

Important : Si un champ est utilisé avec une fonction d’agrégation, vous ne pouvez pas spécifier des critères pour ce champ dans une clause WHERE. À la place, vous utilisez une clause HAVING pour spécifier des critères pour les champs agrégés. Pour plus d’informations, consultez la section utilisation des données synthétisées : GROUP BY et HAVING.

Syntaxe de la clause WHERE

La syntaxe de base d’une clause WHERE est la suivante :

WHERE field = criterion

Supposons par exemple, que vous souhaitiez connaître le numéro de téléphone d’un client et que vous ne vous souveniez plus que de son nom qui est Bagel. Au lien de parcourir tous les numéros de téléphone stockés dans votre base de données, vous pouvez utiliser la clause WHERE pour limiter les résultats et faciliter la recherche de ce numéro. En supposant que les noms sont stockés dans le champ Nom, la clause WHERE se présente alors comme suit :

WHERE [LastName]='Bagel'

Remarque : Vous n’êtes pas obligé de baser les critères dans votre clause WHERE sur l’équivalence de valeurs. Vous pouvez utiliser d’autres opérateurs de comparaison, tel que supérieur à (>) ou inférieur à (<). Par exemple, où [prix] > 100.

Utiliser la clause WHERE pour combiner des sources de données

Vous pouvez parfois être amené à combiner des sources de données en vous basant sur des champs contenant des données correspondantes mais de types différents. Par exemple, un champ dans une table peut posséder un type de données numérique, alors que vous souhaitez comparer ce champ à un champ dans une autre table qui possède un type de données texte.

Vous ne pouvez pas créer de jointure entre des champs dont le type de données est différent. Pour combiner des données issues de deux sources de données en vous basant sur les valeurs des champs dont les types de données sont différents, créez une clause WHERE qui utilise un champ comme critère pour l’autre champ, en utilisant le mot-clé LIKE.

Supposons par exemple, que vous souhaitiez utiliser les données de la table1 et de la table2, mais uniquement lorsque les données du champ1 (un champ texte de la table1) correspondent aux données du champ2 (un champ numérique dans le table2). Votre clause WHERE peut se présenter comme suit :

WHERE field1 LIKE field2

Pour plus d’informations sur la création des critères à utiliser dans une clause WHERE, voir l’article exemples de critères de requête.

Haut de la Page

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

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.

×