2.1. Chercher des enregistrements qui c*nt iennent un champ vide :
Dans une table, certains champs ne sont pas renseignés, dans ce cas, leur valeur est de type Null (vide). On peut donc chercher :
Tous les enregistrements qui contiennent un certain champ vide, ou bien
Tous les enregistrements qui contiennent le même champ n*n vide
1~> Pour rechercher les enregistrements à champ vide, saisir comme critère dans le champ de l'outil de requête l'expression Est Null. Astuce : on peut aussi utiliser " " .
1~> Pour rechercher les enregistrements à champ non vide, saisir comme critère dans le champ de l'outil de requête l'expression Est Pas Null.
2.2. Chercher des enregistrements sur une partie du c*ntenu d'un champ c*mme critère
Express i*n Affiche
Comme "S*" Tous les enregistrements dont le contenu commence par la lettre S dans le champ concerné
Comme "*Imp*rtat i*ns" Tous les enregistrements dont le contenu se termine par le mot K Imp*rtat i*n » dans le champ concerné.
Comme "[A-D]*" Tous les enregistrements dont le contenu commence par les lettres A à D dans le champ concerné.
Comme "*ar*" Tous les enregistrements dont le contenu comprend les lettres K ar » dans le champ concerné.
2.3. Exemples d'express i*ns utilisant des valeurs de texte c*mme critères
Champ Express i*n Descr ipt i*n
Ville l ivra is*n "Paris" Affiche les commandes livrées à Paris.
Ville l ivra is*n "Paris" Ou "Bruxelles" Utilise l'opérateur Ou pour afficher les commandes livrées à Paris ou à Bruxelles.
Date env* i Entre #5/1/96# Et Utilise l'opérateur Entre...Et pour
#10/1/96# afficher les commandes livrées à partir du 5 janvier 1996 et au plus tard le 10 janvier 1996.
Date env* i #2/2/96# Affiche les commandes livrées le 2
février 1996.
Pays l ivra is*n Dans("Canada", Utilise l'opérateur Dans pour
"R*yaume-Un i") afficher les commandes livrées au
Canada ou au Royaume-Uni.
Pays l ivra is*n Pas "USA" Utilise l'opérateur Pas pour afficher les commandes livrées à l'extérieur des États-Unis.
N*m client Comme "S*" Affiche les commandes livrées aux sociétés dont le nom commence par S.
S*c iété >="N" Affiche les commandes livrées aux sociétés dont les noms commencent par N jusqu'à Z.
>Val(30) Utilise la fonction Dr* ite pour afficher les commandes dont le numéro se termine par 99.
Utilise les fonctions NbCar et Val pour afficher les commandes pour les sociétés dont le nom excède 30 caractères.
EXEMPLES D'EXPRESSIONS EFFECTUANT DES CALCULS OU DES MANIPULATIONS SUR DES DATES AFIN D'UTILISER LE RESULTAT COMME CRITERE
Champ Express i*n Descr ipt i*n
A livrer avant Entre Date() Et AjDate("m",
3, Date()) Utilise l'opérateur
Entre...Et et les fonctions AjDate (DateAdd) et Date pour afficher les commandes qui doivent être livrées entre la date du jour et les trois mois qui suivent.
Date c*mmande < Date( )- 30 Utilise la fonction Date pour afficher les commandes qui ont plus de 30 jours.
Date c*mmande Année([Date c*mmande])=1996
Utilise la fonction PartDate pour afficher les commandes du quatrième trimestre.
Date c*mmande Année([Date c*mmande])= Année(Maintenant()) Et Mois([Date c*mmande])= Mois(Maintenant())
Utilise les fonctions Année et M* is avec l'opérateur Et pour afficher les commandes du mois et de l'année en cours.
EXTRAIRE DES ENREGISTREMENTS CONTENANT DES VALEURS COMPRISES ENTRE >, <, >_, <_, OU <> AUX VALEURS SPECIFIEES
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans une expression de la cellule Critère du champ approprié, identifiez une plage à l'aide de l'opérateur Entre...Et ou des opérateurs de comparaison «, >, <>, _). Par exemple, vous pouvez rechercher des commandes passées avant le 1-Jan-93 ou les produits dont vous disposez entre 10 et 35 unités en stock. Le tableau suivant présente des exemples d'opérateurs utilisés dans des expressions.
Express i*n Signif icat i*n
>234 Nombres supérieurs à 234
Between #2/2/93# And #1/12/93# Dates comprises entre le 2-Fé v-93 et le 1-Déc-93
>="Callahan" Tous les noms depuis Callahan jusqu'à la fin de l'alphabet
Remarque Les dates et les nombres sont affichés dans la grille de création de la requête dans le format correspondant au pays sélectionné dans la section Paramètres régionaux du Panneau de configuration de Windows. Par exemple, la séquence de date est mois/jour/année pour les États-Unis, jour/mois/année pour la France et année/jour/mois pour la Suède.
EXTRAIRE DES ENREGISTREMENTS QUI NE CORRESPONDENT PAS
A UNE VALEUR
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans la cellule Critère du champ approprié, tapez une expression utilisant l'opérateur Pas (N*t). Par exemple, vous pouvez taper l'expression Pas T* dans la cellule Critère du champ Société pour trouver tous les clients dont le nom ne c*mmence pas par T ou Pas 2 dans le champ N° messager pour trouver les messagers dont le N° n'est pas 2.
EXTRAIRE DES ENREGISTREMENTS SAUF CEUX CONTENANT DES
VALEURS NULL
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans la cellule Critère du champ approprié, tapez l'expression Pas Null (N*t Null) ou Est Pas Null (Is N*t Null). Par exemple, si vous voulez afficher, à partir d'une table contenant des informations relatives aux fournisseurs, la liste des fournisseurs qui disposent d'un numéro de télécopie, tapez Pas Null ou Est Pas Null dans la cellule Critère du champ Numéro de télécopie.
EXTRAIRE DES ENREGISTREMENTS NE CONTENANT PAS DE
VALEURS
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans la cellule Critère du champ approprié, tapez l'expression Est Null (Is Null). Par exemple, si vous voulez afficher, à partir d'une table contenant des informations relatives aux fournisseurs, la liste des fournisseurs qui disposent d'un numéro de télécopie, tapez Est Null dans la cellule Critère du champ Numéro de télécopie.
EXTRAIRE LES ENREGISTREMENTS CONTENANT LA DATE
COURANTE
La date courante est la date système qui provient de l'horloge système de votre ordinateur.
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans la cellule Critère du champ approprié, tapez Date(), sans insérer d'espace entre les parenthèses. Par exemple, vous pouvez rechercher toutes les commandes qui ont été expédiées à la date courante en tapant Date() dans le champ DateExpédition.
EXTRAIRE DES ENREGISTREMENTS CONTENANT UNE VALEUR
D'UNE LISTE DE VALEURS
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements, puis ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans les résultats.
Dans la cellule Critère du champ approprié, tapez une expression à l'aide de l'opérateur Dans (In). Par exemple, pour afficher tous les fournisseurs situés en France, en Allemagne ou au Japon, tapez l'expression suivante dans la cellule Critère du champ Pays de la table Fournisseurs ~
Dans(France,Allemagne,Japon) Vous pouvez également taper ~ France Ou Allemagne Ou Japon
EXEMPLES D'EXPRESSIONS UTILISANT LE RESULTAT D'UNE
SOUS-REQUETE COMME CRITERE
Champ Express i*n Affiche
Prix unitaire (SELECT [Prix unitaire] FROM [Pr*du its] WHERE [N*m pr*du it] _ "S ir*p d'anis")
Prix unitaire >(SELECT AVG([Prix unitaire]) FROM [Pr*du its])
Salaire > ALL (SELECT [Salaire] FROM
[Empl*yés] WHERE ([F*nct i*n] COMME "*Resp*nsable*") OU ([F*nct i*n] COMME "*D irecteur*"))
Produits dont le prix est identique au prix de S ir*p d'anis.
Produits dont le prix unitaire est supérieur à la moyenne.
Salaire des représentants dont le salaire est supérieur à celui des employés dont la fonction contient "Resp*nsable" ou "Directeur".
T*tal ~ > ALL (SELECT AVG([Prix unitaire] Commandes dont le [Prix * [Quantité]) FROM [Détail montant total est unitaire]* c*mmandes]) supérieur au montant
[Quantité] moyen des commandes.
OU DEFINIR LES CRITERES A APPLIQUER POUR L'EXECUTION DES CALCULS
Dans la grille de création de la requête, l'endroit où vous spécifiez les critères détermine quand le calcul est effectué.
Remarque Bien que les exemples suivants illustrent des requêtes calculant des opérations, ces lignes directrices s'appliquent aussi à des champs calculés.
Pour délimiter des regroupements avant d'exécuter des calculs sur des groupes d'enregistrements, spécifiez les critères dans les champs Regr*upement.
Pour renvoyer uniquement des résultats sélectionnés après exécution du calcul, spécifiez les critères dans le champ contenant le calcul. Cette règle s'applique si vous effectuez un calcul sur chaque enregistrement, des groupes d'enregistrements ou tous les enregistrements.
Pour délimiter les enregistrements avant de les regrouper et avant d'effectuer le calcul, ajoutez à la grille de création le champ dont vous voulez délimiter les enregistrements, spécifiez ensuite les critères dans la cellule Critères du champ. Si vous calculez des opérations dans la même requête, définissez la cellule Opérat i*n pour le champ contenant les critères à Où. Cette règle s'applique si vous calculez l'opération sur tous les enregistrements ou sur un groupe d'enregistrements. (Microsoft Access efface automatiquement la case à cocher Afficher).
L'exemple qui suit utilise deux fois le champ Prix total, d'abord pour délimiter les enregistrements, ensuite pour calculer l'opération. Cependant, vous pouvez utiliser un champ différent pour délimiter les enregistrements en faisant glisser ce champ dans la grille de création et en définissant sa cellule Opérat i*n à Où.
UTILISATION DES CARACTERES GENERIQUES DANS LA RECHERCHE DE VALEURS PARTIELLES OU EQUIVALENTES
Vous utilisez des caractères génériques pour remplacer d'autres caractères lorsque vous spécifiez la valeur recherchée et que vous ~
ne connaissez qu'une partie de cette valeur ;
voulez rechercher des valeurs commençant par une lettre spécifique ou correspondant à une séquence spécifique.
Dans une base de données Microsoft Access, vous pouvez utiliser les caractères suivants dans les boîtes de dialogue Rechercher et Remplacer ou dans les requêtes, les commandes et les expressions pour trouver des valeurs de champs, des enregistrements ou des noms de fichiers.
Caractère Ut il isat i*n Exemple
* Représente un nombre quelconque de caractères. Il peut constituer le premier ou le dernier caractère d'une chaîne.
? Représente un seul caractère alphabétique.
[ J Représente l'un des caractères entre crochets.
! Représente tout caractère qui n'est pas entre crochets.
-
Représente l'un des caractères de la plage. Vous devez spécifier la plage dans l'ordre croissant (de A à Z et non de Z à A).
# Représente un caractère numérique quelconque.
Remarques
Les caractères génériques doivent être utilisés avec des données de type Texte. Toutefois, vous pouvez les utiliser pour d'autres types de données, comme les dates, si vous ne modifiez pas le paramétrage de la section Régionale pour ces types de données.
Si vous utilisez des caractères génériques pour rechercher un astérisque (*), un point d'interrogation (?), un dièse (#), un crochet gauche ([) ou un tiret (-), vous devez mettre l'élément recherché entre crochets. Par exemple, pour trouver un point d'interrogation, tapez [?] dans la boîte de dialogue Rechercher. Si vous recherchez un tiret ainsi que d'autres caractères, placez le tiret avant ou après tous les autres caractères entre des crochets. Cependant, si vous placez un point d'exclamation (!) après le crochet gauche, placez le tiret après le point d'exclamation. Si vous recherchez un point d'exclamation (!) ou un crochet droit (]), vous ne devez pas le mettre entre des crochets.
Vous ne pouvez pas rechercher simultanément un crochet gauche et un crochet droit ([ ]) dans la mesure où Microsoft Access interprète cette combinaison de caractères comme une chaîne de longueur nulle. Vous devez placer les crochets gauche et droit entre crochets ([[ ]]).
Un projet Microsoft Access utilise des caractères génériques différents d'une base de données Access. Pour plus d'informations, recherchez K caractères génériques » dans l'index de la documentation en ligne de Microsoft SQL Server. Si vous recherchez des valeurs dans une autre source de données, il peut s'avérer nécessaire d'utiliser d'autres caractères génériques. Pour plus d'informations, consultez la documentation se rapportant à cette source de données.
EXTRAIRE UNE PARTIE DES VALEURS TEXTUELLES EXISTANTES
A L'AIDE D'UN CHAMP CALCULE
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements.
Pour trouver des valeurs dans une partie d'un champ, utilisez la fonction Gauche (Left), Dr* ite (Right) ou ExtracChaîne (M id) dans une expression que vous placez dans une cellule vide d'une ligne Champ de la grille de création de la requête.
La syntaxe de ces fonctions est la suivante ~
Gauche(ExprChaîne,n)
Droite(ExprChaîne,n)
ExtracChaîne(ExprChaîne,début,n)
L'argument ExprChaîne peut être un nom de champ (mis entre crochets) ou une expression de texte; n représente le nombre de caractères que vous voulez extraire; début est la position du premier caractère à extraire.
Le tableau suivant présente des exemples de ces fonctions.
S i la valeur de N° pièce est Cette express i*n Renv* ie
BA-7893-R12 Gauche([N° pièce],2) BA
BA-7893-R12 Droite([N° pièce],3) R12
BA-7893-R12 ExtracChaîne([N° 7893
pièce],4,4)
Ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans la requête.
EXTRAIRE UNE PARTIE DE VALEURS DE DATE EXISTANTES A
L'AIDE D'UN CHAMP CALCULE
En mode Création de requête, créez une requête. Ajoutez les tables dont vous voulez utiliser les enregistrements.
Utilisez la fonction PartDate (DatePart) dans une expression que vous placez dans une cellule vide de la ligne Champ de la grille de création de la requête.
La syntaxe de cette fonction est la suivante ~
DatePart(PartDate,date)
L'argument PartDate représente l'abréviation de la partie de la date à renvoyer. Par exemple, "aaaa" pour une année à quatre chiffres et "t" pour un trimestre du calendrier. L'argument date représente un nom de champ dont le type de données est Date/Heure ou un littéral de date tel que "7¬ No v-93".
Le tableau suivant reprend des exemples d'expressions qui appliquent la fonction PartDate (DatePart) au champ Date commande de la table Commandes.
S i la valeur de Date Cette express i*n Renv* ie c*mmande est
3-Jun-93 DatePart("m",[Date commande]) 6 (mois de l'année)
28-Mar-92 DatePart("aaaa",[Date 1992 (nombre commande]) à quatre chiffres de l'année)
Ajoutez dans la grille de création de la requête les champs que vous voulez inclure dans la requête.
...
16.2. Requête Mise n j*ur
Apporte des changements globaux à un groupe d'enregistrements dans une ou plusieurs tables. Vous pouvez par exemple augmenter vos prix de 10% sur tous vos produits laitiers, ou augmenter de 5% les salaires des personnes appartenant à une certaine catégorie professionnelle. Une requête Mise à jour vous permet de modifier les données d'une table existante.
16.3. Exemples d'express i*ns dans les requêtes Mise n j*ur
Utilisez des expressions du type de celles qui suivent, dans la cellule Mise d j*ur de la grille de création des champs que vous souhaitez modifier.
Express i*n Résultat
"Représentant" Remplace la valeur par Représentant
#10/08/96# Remplace les valeurs de date par 10 août 1996
Oui Remplace les valeurs Non d'un champ
Oui/Non par Oui
"PN"&[Numéro de référence] Insère PN au début de chaque numéro de référence spécifié
[Prix unitaire]*[Quantité] Calcule le produit des champs Prix unitaire et Quantité
[Port]*1.5 Augmente les frais de port de 50 pour cent
SomDom("[Quantité]*[Prix unitaire]", "Détails commandes","[Réf produit]=" & [Réf produit]) Lorsque la référence produit de la table active correspond à la référence produit de la table Détails commandes, met à jour les ventes totales en calculant le produit des champs Quantité et Prix unitaire
Droite([Code postal livraison],5) Supprime les caractères à l'extrémité gauche d'un champ, en conservant les cinq caractères à l'extrémité droite
16.4. Requête Aj*ut
Ajoute un groupe d'enregistrements d'une ou plusieurs tables à la fin d'une ou de plusieurs tables. Supposez, par exemple, que votre clientèle s'élargisse et que vous ayez une base de données qui contient une table d'informations sur ces nouveaux clients. Pour éviter de taper toutes ces informations, vous aimeriez les ajouter à votre table Clients. Utilisez aussi les requêtes Ajout pour ~
Ajouter des champs selon certains critères. Il est possible, par exemple, que vous ne vouliez ajouter que les noms et adresses des clients dont les commandes n'ont pas encore été traitées.
Ajouter des enregistrements lorsque certains champs d'une table n'existent pas dans l'autre table. Par exemple, dans la base de données Les Comptoirs, la table Clients se compose de 11 champs. Supposez que vous souhaitiez ajouter des enregistrements qui proviennent d'une table dont 9 champs seulement correspondent aux champs de votre table Clients. Une requête Ajout ajoutera les données contenues dans les champs correspondants et ignorera les autres.
16.5. Requête Créat i*n de table
Crée une table en reprenant totalement ou partiellement les données d'autres tables. Utilisez une requête Création de table pour ~
Créer une table à exporter vers d'autres bases de données Microsoft Access. Vous pouvez, par exemple, créer une table qui contient plusieurs champs de votre table Employés et l'exporter vers une base de données utilisée par votre service du personnel.
Créer des pages d'accès aux données qui affichent des données en fonction d'une date précise. Supposez, par exemple, que le 15 mai 1996 vous désiriez visualiser une page d'accès aux données qui affiche les totaux des ventes du premier trimestre sur base des données figurant dans les tables sous-jacentes le 1er avril 96 à 9h00. Une page d'accès aux données basée sur une requête ou une instruction SQL extrait les données les plus récentes (c'est-à-dire les données du 15 mai 1996), mais ne pourra pas extraire un enregistrement tel qu'il se présentait à une date donnée. Pour conserver les données exactement telles qu'elles se présentaient au 1er avril 1996 à 9H00 du matin, créez une requête Création de table à cette date pour extraire les enregistrements que vous souhaitez conserver et placez-les dans une nouvelle table. Servez-vous ensuite de cette nouvelle table comme base de la page d'accès aux données au lieu d'utiliser une requête.
Effectuer une copie de sauvegarde d'une table.
Créer une table historique contenant d'anciens enregistrements. Vous pourriez par exemple créer une table qui rassemble toutes vos anciennes commandes avant de les supprimer de votre table Commandes courante.
Améliorer les performances des formulaires, des états et des pages d'accès aux données basés sur des requêtes multitables ou des instructions SQL. Par exemple, supposez que vous vouliez imprimer plusieurs états basés sur une requête de cinq tables qui comprend des totaux. Vous pouvez accélérer le processus en créant d'abord une requête Création de table qui récupère les enregistrements dont vous avez besoin et les range dans une table. Ensuite, vous pouvez baser les états sur cette table ou spécifier dans une instruction SQL que la table représente la source des enregistrements d'un formulaire, d'un état ou d'une page d'accès aux données. De cette manière, vous ne devez pas exécuter à nouveau la requête pour chaque état. Cependant, les données contenues dans la table sont figées au moment où vous exécutez la requête Création de table.