Définition des critères de sélection
Opérateurs
On peut utiliser dans les requêtes les opérateurs suivants :
Opérateur Signification
= Egal
<> Différent
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal
Access met à notre disposition d’autres opérateurs :
Opérat eur Signification Exemple
Entre Sélectionne les enregistrements pour Entre « A » et « C »
lesquels la valeur d’un champ est Entre 10 et 20
comprise dans un intervalle de Entre #01/01/99# et #31/12/99#
valeurs.
Dans Sélectionne les enregistrements pour Dans (« Paris »; »Saint-Quentin »)
lesquels la valeur d’un champ est comprise dans une liste.
Est Sélectionne les enregistrements pour Est NULL lesquels un champ est vide ou non Est pas NULL
Comme Sélectionne les enregistrements Comme « rue* » contenant une donnée approximative.
Pas Sélectionne les enregistrements ne Pas Entre « A » et « C » correspondant pas au critère
Les Fonctions
On peut intégrer des fonctions dans les critères de sélection. Access met à notre disposition un très grand nombre de fonctions (pour en avoir la liste complète, consultez l’aide intégrée à Access). Ce sont les mêmes fonctions que celles qui sont utilisés dans les contrôles des formulaires (et d’ailleurs dans tous les logiciels de la gamme Microsoft Office).
Par exemple, parmi ces fonctions, on trouve la fonction Mois ( ), à qui on passe une date en paramètre, cette fonction renvoie le mois de cette date, par exemple Mois (#10/2/98#) renvoie 2. Une autre fonction, Date ( ) renvoie la date du jour. On peut utiliser ces deux fonctions dans des critères de sélection :
Par exemple, pour obtenir la liste des commandes du mois d’octobre :
Notez que pour faire référence au champ « Date de la commande » dans la fonction Mois ( ), on a écrit le champ entre crochets [ ]. On utilise les crochets lorsqu’on travaille avec un champ dont le nom comporte des espaces. Par extension et par mesure de précaution, on les utilisera avec tout type de champ.
Ou pour obtenir la liste des commandes passées il y a moins d’un mois :
Il existe un très grand nombre de fonctions, pour en avoir la liste et la syntaxe, consultez l’aide intégrée à Access.
Plusieurs critères portant sur des champs différents
On peut avoir plusieurs critères de sélection, ces critères étant séparés entre eux par des OU ou des ET, par exemple : « liste des clients habitant à Saint-Quentin OU à Paris », » Liste des clients s’appelant Dupont ET vivant à Paris ».
1- Liste des clients s’appelant Dupont et vivant à Saint-Quentin
La requête ressemble à la précédente, sauf que là, il y a deux critères : le premier Nom = « Dupont » ET le deuxième Ville = « Paris ». Vous noterez au passage qu’il n’est pas nécessaire d’afficher le contenu du champ « ville » puisqu’on sait que ce sera toujours Paris. Vous me direz que c’est la même chose avec « Nom », certes, mais c’est mieux d’avoir une liste de nom + prénom qu’une seule liste de prénom.
2- Liste des clients habitant Saint-Quentin OU Paris
Quelle est la différence ?
Les deux critères ne sont plus sur la même ligne. Ils sont sur deux lignes séparées. Le premier est sur la ligne « Critères », le second sur la ligne « Ou ». Si on avait voulu ajouter un troisième critère (Liste des clients habitant Saint-Quentin OU Paris OU Lille), on aurait ajouter le critère = « Lille » sur une troisième ligne et ainsi de suite.
En règle générale :
?? Si deux critères sont séparés par des ET, on les place sur la même ligne.
?? Si deux critères sont séparés par des OU, on les place sur des lignes différentes.
Requête paramétrée
Pour l’instant, les critères de chaque requête que nous avons fait étaient indiqués explicitement dans la requête. Supposons maintenant que nous voulions faire une requête du type :
« Liste de tous les clients qui habitent dans une ville » mais qu’on veuille entrer nous même la ville.
On ne connaît pas par avance la ville en question, et on ne va pas préparer autant de requêtes qu’il peut y avoir de villes (on n’est pas sorti de l’auberge), la solution la plus simple est alors de demander à l’utilisateur (l’utilisateur, c’est celui qui va utiliser votre requête plus tard) d’entrer la ville, et de faire la requête en fonction de ce qu’il a entré.
Pour faire ça, on procède ainsi :
Au lieu d’indiquer une ville, on a mis =[Entrez la ville]. Que va-t-il se passer lorsqu’on va exécuter la requête?
Habituellement, pour Access, tout ce qui est indiqué entre crochets est le nom d’un champ, si on avait mis par exemple = [Nom], il aurait cherché les clients qui habitent une ville qui s’appelle comme leur nom. Or ici, [Entrez la ville] n’est pas un nom de champ, Access ne sait donc pas ce que c’est, et il demande à l’utilisateur d’entrer la valeur de ce champ inconnu :
L’utilisateur va entrer ici la ville (notez que le message affiché est ce qui était indiqué entre crochets dans la requête). Maintenant, à chaque fois que Access va rencontrer dans la requête [Entrez la ville], il va le remplacer par ce qu’à saisi l’utilisateur. Si l’utilisateur a saisi Paris, Access va remplacer dans son critère =[Entrez la ville] par = « Paris ».
Les requêtes multitables
Pour l’instant, nos requêtes ne portaient que sur une seule table, il est possible de faire des requêtes qui portent sur plusieurs tables simultanément. Dans ce cas, les requêtes peuvent être très complexes.
Par exemple, si nous voulons la liste des clients ayant commandé le produit n° 1 :
Avec le bouton : , on affiche la liste des tables de la base.
On va choisir ici toutes les tables entrant en jeu pour pouvoir faire la requête. Ici on veut la liste des clients, il faut donc la table clients. « ayant commandé », il faut donc la table commandes, « le produit n°1 », il faut donc la table produits. Il faut aussi faire intervenir la table « Lignes-commandes ».
Pourquoi ? parce que c’est elle qui fait la liaison entre la table commande et la table produits. De façon générale, lorsqu’on fait une requête portant sur plusieurs tables, il faut respecter deux règles :
?? Toutes les tables intervenant dans la requêtes doivent être reliées entre elles, il ne doit pas y avoir de tables isolées, sinon, Access va essayer de trouver lui-même les relations entre ces tables isolées et parfois le résultat peut être folkorique.
?? Il ne doit pas y avoir de tables n’ayant rien à faire dans la requête, sinon, Access va se baser sur les relations entre ces tables n’ayant rien à voir avec la choucroute et celles ayant à voir et va donner des résultats erronés.
En résumé : toutes les tables nécessaires, mais pas plus.
Vous pouvez noter que, une fois les bonnes tables installées avec les bonnes relations entre elles, la requête est fort simple, il suffit d’indiquer produits=1, et Access, grâce aux relations, va retrouver la liste des clients ayant commandé ce produit.
Les fonctions de regroupement
Jusqu’à présent, nos requêtes nous permettaient de répondre à des questions du type : « Liste des clients habitant Paris », « Liste des produits commandés par le client 1″. Grâce aux fonctions de regroupement, nous allons pouvoir répondre à des questions du type : » Combien de clients habitent Paris ? » ou « Pour combien à commandé chaque client ? ».
Pour cela, cliquez sur le bouton :
Une nouvelle ligne « Opération » apparaît dans la requête, c’est grâce à elle que nous allons faire nos opérations.
Combien de clients habitent Paris
Qu’y-a-t-il de différent ?
Nous avons deux champs : nous allons compter le nombre de clients, chaque client a un numéro, on insère donc dans la requête le numéro de client, c’est le nombre de ces numéros que nous allons compter, il faut qu’on compte les clients habitant Paris, d’où le deuxième champ Ville.
La différence est sur la ligne Opération :
Elle indique comment va se faire l’opération, si nous voulons compter, on va choisir l’opération « compte ». Dans tous les champs où il y a un critère de sélection (ici Ville = « Paris »), on choisira l’opération où. Le résultat de la requête sera une table avec un unique champ, non modifiable, qui indiquera le nombre de clients habitant Paris.
1. Introduction
2. Création d’une requête
3. Définition des critères de sélection
3.1 Opérateurs
3.2 Les Fonctions
3.3 Plusieurs critères portant sur des champs différents
3.4 Requête paramétrée
4. Les requêtes multitables
5. Les fonctions de regroupement
5.1 Les opérations
5.2 Quelques exemples
6. Les requêtes d’analyse croisée
7. Les requêtes ACTION
7.1 Les requêtes Création
7.2 Les requêtes Ajout
7.3 Les requêtes Mise à Jour
7.4 Les requêtes Suppression