Développement d'applications

avec une base de données

Les requêtes avec Access

Module précédent

Définition

Requête = sélection de certains enregistrements en fonction de critères de recherche.

Les types de requêtes

On peut faire différentes formes de requêtes:

Comprendre les relations

Lorsque des requêtes s'étendent sur plusieurs tables, Access inscrit automatiquement les liens entre les tables (on peut modifier les relations pour la requête, mais ce n'est pas recommandé). La relation force Access à trouver tous les enregistrements pour lequel une correspondance existe entre les 2 tables, et à créer une 3e table temporaire avec toutes les combinaisons possibles.

Remarque: Si on ne fait pas de relations, Access effectuera le produit cartésien, i.e. qu'il croisera tous les enregistrements de la première table avec tous ceux de la seconde, même si aucune relation n'existe.

Left/rigth/inner Join

La plus grande différence entre les requêtes basées sur une seule table et les requêtes basées sur des tables reliées est la jointure. Cela revient à se poser la question: Comment la requête sera-t-elle exécutée si un enregistrement d'une table ne trouve pas de correspondance dans l'autre table?

La réponse est: Ça dépend. Le programmeur doit indiquer à Access comment réagir.

  1. Double-cliquez sur la relation.
  2. Choisissez la réaction souhaitée.

Requête basée sur autre(s) requête(s)

Une requête peut être basée sur une autre requête plutôt que sur une table. Cela peut être utile lorsque Access doit faire des recherches intermédiaires. Par exemple:

  1. Une requête doit chercher des instructions ligne par ligne, jamais en comparant une ligne avec une autre. Si 2 lignes doivent être comparées, il est parfois plus simple de faire une requête qui cherche certains critères, puis une 2e requête qui compare la table de départ avec la première requête. Il faut alors préciser à Access comment joindre les 2.
  2. Si un calcul doit être fait à partir d'un autre calcul, il faut alors faire le premier calcul dans une requête à partir de la table, puis le second calcul à partir de la requête. Remarque: cette technique peut être utilisée récursivement. Si on doit effectuer un 3e calcul à partir du 2e, il faudra faire une 3e requête à partir de la 2e, et ainsi de suite.

Module suivant