Copyright © 2021-2022 Yves MARCOUX; dernière modification : 2022-11-21.

Recherche d’information dans Access

Yves MARCOUX - EBSI - Université de Montréal


Table des matières

Introduction

La démarche de recherche

Accents et autres signes diacritiques

Particularité d’Access

Aide à la navigation

Tri

Rechercher / remplacer

Recherche par requête

Filtrage

Définition d’un filtre

Forme d’un critère

Opérateurs de comparaison

Dates comme critères de sélection : attention !

Recherche textuelle : l’opérateur Comme

Combinaisons de critères

ET booléen

OU booléen

Retrait d’un critère

Priorité du ET sur le OU

Exercice

Recherche dans les champs à occurrences multiples

Jointure avec auteurs

Filtrage par auteur

Une autre interface de filtrage

Jointure avec descripteurs

Jointure avec auteurs et descripteurs

Critères sur des occurrences distinctes

Filtres sauvegardés

Filtres et requêtes à paramètres

Filtres à paramètres

Requêtes à paramètres

Recherche textuelle avec paramètres

Exemple à deux paramètres

Formulaires pour la recherche

Scénarios de recherche et formulaires

Ajout de macros à la BD

Formulaire pour documents

Fonctionnement du nouveau formulaire

Améliorations aux formulaires de saisie

Modifications au formulaire monographies

Modifications au formulaire articles

Formulaires pour les autres points de départ

Particularité des formulaires basés sur une jointure


Introduction

La démarche de recherche

Il y a plusieurs façons de rechercher de l’information dans Access. Fondamentalement, le principe est toujours le même : l’utilisateur formule une requête de recherche dans une boîte de saisie que l’on appelle boîte de recherche, puis il lance la recherche. Access exécute alors la requête, c’est-à-dire qu’il repère dans la BD les éléments qui satisfont aux critères de la requête, puis les présente à l’utilisateur. On appelle ces éléments qui satisfont aux critères les résultats de la recherche. L’utilisateur navigue alors dans les résultats de recherche jusqu’à ce qu’il trouve ce qu’il veut.

On peut dire que la première étape, qui consiste à formuler et à faire exécuter une requête, restreint la portée de la seconde étape, celle de naviguer dans les résultats de recherche. Si la requête est très précise et retourne un faible volume d’information, la navigation peut se faire « à la main », sans outil particulier, simplement par inspection visuelle ou en utilisant les mécanismes de déroulement habituels (scrolling). Si, à l’inverse, la requête retourne une grande quantité d’information, alors des mécanismes spécifiques d’aide à la navigation peuvent être très utiles.

Une chose importante dans Access (et cela est vrai dans tout SGBD relationnel) est que le résultat d’une requête de recherche est toujours lui-même une table. Contrairement aux tables permanentes de la BD, que l’on voit dans la section Tables du Volet de navigation, un résultat de requête est une table temporaire, qui disparaît une fois qu’on la ferme, vraisemblablement après l’avoir parcourue par navigation à la recherche de l’information recherchée. Même temporaire, il n’en demeure pas moins que tout résultat de recherche est une table.

Pour cette raison, les mécanismes qu’Access propose pour naviguer dans le résultat d’une requête sont aussi applicables directement aux tables permanentes de la BD. On peut donc imaginer une recherche d’information basée exclusivement sur la navigation dans une des tables de la BD, sans formulation préalable d’une requête de recherche.

Une table peut être consultée non seulement en mode Feuille de données, mais également en mode Formulaire (par le truchement d’un formulaire). Il est bon de savoir que les mécanismes de navigation d’Access peuvent être utilisés autant en mode Feuille de données qu’en mode Formulaire.

Accents et autres signes diacritiques

La plupart des outils de recherche d’information, que ce soit des outils de navigation ou de recherche par requête, sont insensibles à la casse des lettres et aux signes diacritiques. On veut dire par là que, lorsqu’un critère de recherche est basé sur la présence d’un terme (mot, expression ou chaîne quelconque) dans un passage textuel, l’outil recherchera aussi toutes les variantes qui se distinguent du terme recherché par la casse des lettres (majuscule vs minuscule) et/ou par la présence de signes diacritiques (accents, cédilles et autres « décorations ») sur les lettres.

Ce comportement est en général une excellente chose en recherche d’information, puisqu’il nous évite d’avoir à décliner nous-mêmes toutes les formes d’un terme susceptibles de nous intéresser.

Particularité d’Access

Dans Access, tant les outils de navigation que la recherche par requête sont insensibles à la casse des lettres, mais malheureusement pas aux signes diacritiques. Ainsi, la recherche du terme château recherchera également CHÂTEAU (et toutes les autres variantes majuscules/minuscules), mais ne recherchera pas chateau sans l’accent circonflexe. Ce comportement n’est pas paramétrable.

Heureusement, Access permet de développer des fonctions par programmation et il est donc possible de programmer une fonction pour contourner ce problème. Évidemment, les recherches seront plus complexes, puisqu’elles devront faire usage explicite de cette fonction (nous verrons comment plus loin). Mais au moins, il sera possible de faire des recherches insensibles à la casse et aux diacritiques lorsque nécessaire.

Un point positif dans cette situation : il n’est pas nécessaire de faire la programmation soi-même. Il existe plusieurs façons de copier-coller dans sa propre BD une fonction adéquate à partir de différentes sources. Dans le cadre du cours, vous pourrez le faire à partir d’une BD Access qui vous sera fournie. Les instructions seront données en temps et lieu. Comme cette fonction est disponible en licence Creative Commons, vous pourrez même l’utiliser dans des projets futurs si jamais l’occasion se présente.


Aide à la navigation

Jetons d’abord un coup d’œil aux outils de navigation disponibles dans Access. Comme nous avons dit précédemment, ces mécanismes sont tout autant applicables pour la navigation dans une table permanente de la BD que pour la navigation dans un résultat de requête, et autant en mode Feuille de données qu’avec un formulaire en mode Formulaire.

Tri

Le tri consiste en le réarrangement des fiches d’une table selon un ordre donné, ce qui peut faciliter le repérage d’information pertinente; en d’autres termes, la navigation.

Nous avons effleuré la forme la plus simple du tri lors de notre première exploration d’Access. Il s’agit du tri selon le contenu d’un seul champ, soit en ordre croissant, soit en ordre décroissant. La façon que vous avions vue pour appliquer un tel tri ne fonctionne qu’en mode Feuille de données; voici une façon qui fonctionne également en mode Formulaire.

Si vous effectuez l’opération successivement sur deux champs, le dernier champ traité sera la clé principale de tri et l’autre la clé secondaire.

Il faut noter que, même si le tri est sensible aux diacritiques, il les traite correctement, de sorte que le résultat du tri n’est pas faussé.

Rechercher / remplacer

Le second mécanisme d’aide à la navigation dans Access est analogue à la fonction « rechercher / remplacer » que l’on retrouve dans les logiciels de traitement de texte. Il permet de « sauter » à la prochaine occurrence d’une chaîne de caractères que l’on fournit.

Malheureusement, il n’est pas possible, avec ce mécanisme, de contourner la prise en compte des diacritiques en utilisant une fonction programmée. Cette aide à la navigation est donc toujours sensible aux diacritiques.

« Document actif » signifie ici simplement la totalité de table que l’on est en train de consulter. Il est possible de limiter la recherche au champ où on l’a commencée, en troquant « Document actif » pour « Champ actuel ».

On peut moduler le comportement de la recherche en ajustant les paramètres « Où » et « Sens », dont les valeurs sont auto-explicatives.

Note : Si on est en train de consulter une table en mode Formulaire avec un formulaire qui contient un ou plusieurs sous-formulaires, la chaîne n’est pas recherchée dans les champs du sous-formulaire, sauf si on a démarré la recherche dans un de ces champs. Dans ce cas, la chaîne n’est recherchée que dans les champs du sous-formulaire pour la fiche courante du formulaire principal.

Recherche rapide

Une fonctionnalité partielle de recherche est accessible par la petite boîte « Rechercher » de la barre de navigation habituellement présente complètement au bas de la feuille de données ou du formulaire, où l’on peut inscrire la chaîne recherchée :

recherche-d-info-4.png

Cette fonctionnalité partielle ne permet que d’atteindre la première occurrence de la chaîne recherchée et ne recherche jamais dans les sous-formulaires. Pour atteindre les occurrences suivantes, ou moduler le comportement de la recherche, il faut ouvrir la fenêtre de recherche en cliquant sur la loupe recherche-d-info-5.png dans le bandeau Accueil.

Remplacement

La fenêtre de recherche comporte parfois un onglet Remplacer, qui se présente comme suit :

recherche-d-info-6.png

Son fonctionnement est tout à fait analogue au remplacement que l’on peut effectuer avec la fonction rechercher / remplacer des logiciels de traitement de texte.

L’onglet Remplacer n’est pas présent si on est en train de consulter un formulaire où les modifications sont interdites, ou avec certaines requêtes qui ne permettent pas les modifications.


Recherche par requête

Toutes les requêtes données en exemples dans cette section peuvent être essayées avec cette BD (qui contient déjà la fonction désac ; voir ci-après).

Rappelons que la formulation d’une requête de recherche est souvent le point de départ d’une démarche de recherche d’information. En réponse à la requête formulée par l’utilisateur, Access présente les résultats de recherche. Comme ces résultats sont toujours une table, l’utilisateur peut y naviguer en utilisant les mécanismes de navigation que nous venons de voir.

Tel qu’annoncé plus haut, il vous sera possible de formuler des requêtes insensibles aux diacritiques, grâce à une fonction, appelée désac (diminutif de « désaccentuation »), qui vous est fournie. Pour intégrer cette fonction dans votre BD, procédez comme suit.

Intégration de la fonction désac dans votre BD :

  1. Ouvrez votre BD dans Access.
  2. Ouvrez cette BD, nommée outils-rech.accdb, dans une seconde copie d’Access.
  3. Dans la BD outils-rech.accdb, dans la section Modules du Volet de navigation, faites clic-droit sur l’élément appelé codeGénéral, puis choisissez Copier.
  4. Retournez dans votre base et, n’importe où dans le Volet de navigation, faites clic-droit puis choisissez Coller.
  5. Confirmez le nom du module : codeGénéral.
  6. Fermez la copie d’Access où se trouve la BD outils-rech.accdb. Vous devrez peut-être confirmer la suppression du contenu du presse-papier.

Voilà, à partir de maintenant, vous pourrez utiliser la fonction désac dans vos requêtes de recherche (nous verrons comment ci-dessous).

Notez que cette fonction élimine correctement les signes diacritiques du français et de la plupart des langues européennes, mais pas nécessairement ceux de toutes les langues.

Les requêtes de recherche en Access peuvent être rédigées dans différentes interfaces, dont la plupart sont des interfaces graphiques. Ultimement, pour être exécutées, toutes les requêtes sont traduites en un langage d’interrogation spécifique appelé SQL, pour Structured Query Language, le langage d’interrogation standard des SGBD relationnels.

Dans ce texte, nous ne verrons pas directement le langage SQL; nous nous limiterons à une des interfaces graphiques d’Access. Il s’agit d’une interface de filtrage, qui permet de définir et d’appliquer à une table, au moment où on la consulte, un critère de sélection qui « laisse passer » certaines lignes de la table et masque les autres. Nous mentionnerons aussi brièvement une autre interface de filtrage, plus simple, utile dans certains cas spécifiques.

Filtrage

Un filtre est un critère de sélection qui s’applique aux lignes d’un table que l’on est en train de consulter, que ce soit en mode Feuille de données ou en mode Formulaire. Il s’agit donc d’un type de requête qui retourne comme résultat un sous-ensemble des lignes de la table, avec exactement les mêmes champs que la table de départ.

La définition et l’application d’un filtre se déroulent comme suit :

L’interface de filtrage permet aussi de définir un ordre de tri à appliquer au résultat du filtre. Cependant, comme nous avons déjà couvert le tri précédemment, nous ne parlerons pas de cette possibilité ici.

Définition d’un filtre

De façon à pouvoir effectuer vous-même les exemples proposés, il est suggéré d’ouvrir maintenant en mode Feuille de données la table documents.

Pour lancer l’interface de filtrage pendant la consultation d’une table, que ce soit en mode Feuille de données ou en mode Formulaire :

  1. Faire Accueil au menu principal.
  2. Repérer la zone Trier et filtrer du bandeau.
  3. Cliquer sur Options avancées.
  4. Sélectionner Filtre/tri avancé….

Un nouvel onglet s’ouvrira, dont le nom est celui de la table suivi du suffixe Filtre1. Par exemple, avec la table documents, l’onglet s’appelle documentsFiltre1.

Le contenu de cet onglet a cette apparence :

recherche-d-info-8.png

Dans cette interface, la partie du haut sert seulement d’aide-mémoire pour la structure de la table consultée. Toute l’« action » se passe dans la partie du bas.

Nous allons illustrer le fonctionnement de cette interface avec des exemples.

Commençons par un filtre très simple : un qui nous permettra de faire afficher seulement les monographies. Les monographies sont les documents dont le champ TYPE contient la valeur "M", ce qu’on pourrait exprimer par l’expression TYPE="M".

Pour exprimer ce critère dans l’interface (la partie du bas de l’onglet, bien sûr), on inscrit le nom du champ, TYPE, et le critère, ="M", dans une des colonnes à notre disposition (il est naturel d’utiliser la première colonne, mais en fait, n’importe laquelle pourrait être utilisée) :

recherche-d-info-9.png

La définition du filtre est terminée. Pour l’appliquer, on retourne à la zone Trier et filtrer du bandeau, où on cliquera sur Options avancées puis sélectionnera Appliquer le filtre/tri :

recherche-d-info-10.png

Et voilà ! Seules les monographies sont maintenant affichées :

recherche-d-info-11.png

On peut désactiver le filtre en cliquant sur Activer/désactiver le filtre dans la zone Trier et filtrer du bandeau :

recherche-d-info-13b.png

Forme d’un critère

La forme que peut prendre un critère est la même que celle des expressions « Valide si », mentionnées dans un texte précédent. Une discussion complète des expressions « Valide si » peut être consultée ici. Le reste de cette section couvre les formes de critères les plus courantes pour la recherche documentaire.

Un critère commence habituellement par un opérateur de comparaison, suivi d’une valeur. Dans notre exemple, l’opérateur de comparaison était = et la valeur "M".

Cependant, l’opérateur peut être précédé du mot Pas, ce qui a pour effet d’inverser le critère de sélection. Par exemple, si on inscrit comme critère Pas = "M", on obtiendra seulement les articles :

recherche-d-info-12.png

recherche-d-info-13.png

Également, l’opérateur = peut être omis; il est alors implicite. Ainsi, pour les monographies, nous aurions pu écrire simplement "M" plutôt que ="M" comme critère, avec exactement le même résultat :

recherche-d-info-14.png

recherche-d-info-11.png

Opérateurs de comparaison

Il y a d’autres opérateurs de comparaison qui peuvent être utilisés dans un critère. Voici quelques-uns des plus importants :

Opérateur Signification
=    (peut être omis) Égal à
< Plus petit que
> Plus grand que
<> Différent de
<= Plus petit ou égal à
>= Plus grand ou égal à
Comme Ressemblant à

L’opérateur = est le seul qui peut être omis.

Nous reviendrons sur l’opérateur Comme ci-dessous.

Les autres opérateurs mentionnés (<, >, <>, <=, >=) peuvent être utilisés avec des champs de type texte, mais ils sont plus typiquement utilisés avec des champs numériques ou de type date. Nous allons en illustrer l’utilisation avec le champ DACR (date de création).

Déplacement du champ DACR

En tout temps, lorsqu’on consulte une table en mode Feuille de données, l’ordre des colonnes peut être modifié.

Ici, pour voir plus facilement le champ DACR, nous allons le déplacer entre TITP et TOED :

Cliquer d’abord sans relâcher sur l’entête du champ DACR :

recherche-d-info-15.png

puis glisser-déposer la colonne entre TITP et TOED :

recherche-d-info-16.png

Le champ DACR se retrouve alors à l’endroit voulu :

recherche-d-info-17.png

Le filtre suivant repère les documents dont la fiche a été créée avant septembre 2021 :

recherche-d-info-18.png

Notez que, dès que vous déplacez le curseur en dehors de la case du critère, Access modifie la valeur en #2021-09-01# :

recherche-d-info-19.png

La forme AAAA-MM-JJ flanquée de deux # est la forme prescrite pour les dates dans les critères, mais Access nous permet de les inscrire sous d’autres formes. Peu importe la forme sous laquelle on l’inscrit, la date correspond au 1 septembre 2021, et l’on obtient donc, à l’application du filtre, le résultat suivant :

recherche-d-info-20.png

Notez que la date visible sur la dernière ligne ne fait pas partie du résultat de recherche, mais est la valeur qui serait inscrite dans le champ DACR si on créait une nouvelle fiche en inscrivant des données sur la ligne identifiée par (Nouv.) dans la colonne NO.

Dates comme critères de sélection : attention !

Il faut faire attention avec les comparaisons de dates, parce qu’en Access, toutes les dates contiennent implicitement aussi une heure « cachée », de sorte que, par exemple, 2021-09-04 désigne en fait minuit le 4 septembre 2021. Ainsi, si on formule comme critère :

recherche-d-info-21.png

il est possible que l’on obtienne des documents dont la fiche a été créée le 24 août 2021, même si le critère semble les exclure. C’est que le critère désigne minuit au début de la journée du 24 août, alors que les fiches créées ce jour-là l’ont presque certainement été après minuit. En effet, on obtient le résultat suivant :

recherche-d-info-22.png

Similairement, le critère suivant :

recherche-d-info-23.png

ne repêche rien :

recherche-d-info-24.png

puisqu’aucune des fiches n’a été sauvegardée à exactement minuit le 24 août 2021.

En conclusion, on peut dire que les opérateurs < et >= sont les deux seuls opérateurs qui fonctionnent de façon intuitive avec les dates.

Si vous ne voulez pas que le déplacement du champ DACR soit permanent, vous n’avez qu’à fermer maintenant la table documents sans sauvegarder sa mise en forme.

Recherche textuelle : l’opérateur Comme

Nous avons déjà rencontré brièvement l’opérateur Comme en lien avec l’expression « Valide si » du champ DATP. Cet opérateur permet une comparaison « souple » entre une chaîne de caractères et un patron pouvant contenir des caractères génériques ou « jokers ». Par exemple, nous avons vu que le caractère # représente n’importe quel chiffre. Rappelons que la totalité des caractères génériques est décrite ici.

Un caractère générique qui nous sera extrêmement utile pour la recherche textuelle est l’astérisque *. Ce caractère générique représente un nombre arbitraire de caractères quelconques, y compris la chaîne vide. Ainsi, utilisé au début et à la fin d’un terme de recherche, il permet de repérer un mot ou une chaîne quelconque n’importe où dans le contenu d’un champ.

Par exemple, le critère suivant retrouvera les documents avec le mot « métier » leur titre :

recherche-d-info-26.png

recherche-d-info-27.png

Notez que si on omet l’accent aigu, le filtre ne retourne rien :

recherche-d-info-28.png

recherche-d-info-29.png

Si l’on veut pouvoir formuler le critère sans égard aux diacritiques, il faut utiliser la fonction désac. Pour ce faire, au lieu de spécifier TITR comme Champ, nous allons inscrire désac(TITR). Pour y arriver, il faut non seulement choisir dans la liste déroulante des champs, mais il faut vraiment cliquer dans la case Champ et taper au clavier « désac(TITR) » :

recherche-d-info-30.png

Notez que, dès que l’on déplace le curseur hors de la case, Access remplace le contenu par Expr1: désac([TITR]), ce qui ne change rien à la signification du critère :

recherche-d-info-31.png

Et, alors, lorsqu’on applique le filtre, on obtient le résultat voulu :

recherche-d-info-27.png

Notez que le caractère générique * peut aussi être utilisé au milieu du terme de recherche :

recherche-d-info-32.png

recherche-d-info-33.png

Rappelons que, comme ce dernier exemple l’illustre bien, l’opérateur Comme ne distingue pas majuscules et minuscules.

Combinaisons de critères

Il est possible de combiner plusieurs critères au sein d’un même filtre. Les critères peuvent être combinés avec un OU booléen ou avec un ET booléen. Comme d’habitude, avec un OU booléen, les fiches repêchées sont celles qui satisfont l’un ou l’autre (ou les deux) des critères. Avec un ET, ce sont les fiches satisfaisant les deux critères qui sont repêchées.

Lorsqu’on combine plusieurs critères, chacun est inscrit sur sa propre colonne. Les critères eux-mêmes seront inscrits soit sur la ligne Critères, comme nous avons fait jusqu’ici, mais certains peuvent aussi être inscrits sur la ligne Ou, ou même sur une des lignes non étiquetées situées en-dessous de la ligne Ou.

ET booléen

Pour combiner des critères avec un ET booléen, on les inscrit sur la même ligne. Commençons avec une combinaison de deux critères. Supposons que l’on veuille repérer les monographies avec « métier » dans leur titre :

recherche-d-info-34.png

Un seul document répond aux deux critères à la fois :

recherche-d-info-35.png

OU booléen

Si nous avions inscrit le critère "M" sur la ligne Ou, au lieu de la ligne Critères :

recherche-d-info-36.png

les critères auraient été combinés avec un OU booléen, et toutes les monographies, en plus des articles avec « métier » dans leur titre, auraient été repérées :

recherche-d-info-37.png

Retirons maintenant le critère sur le TYPE puis servons-nous du OU booléen pour repérer les documents avec « métier » soit dans leur titre, soit dans le titre du périodique (TITP).

Retrait d’un critère

Pour retirer un critère, il suffit de sélectionner la colonne correspondante, en cliquant au-dessus du nom du champ :

recherche-d-info-40.png

puis d’appuyer sur la touche Suppr. (Del).

On peut alors ajouter le critère qui touche le champ TITP :

recherche-d-info-38.png

recherche-d-info-39.png

Si on avait mis les deux Comme "*metier*" sur la même ligne, c’est alors un ET booléen qui aurait été appliqué aux deux critères :

recherche-d-info-41.png

recherche-d-info-42.png

Si l’on veut lier par un OU deux critères qui touchent le même champ, on peut, si l’on veut, inscrire les deux critères sur deux lignes différentes de la même colonne, plutôt que d’utiliser deux colonnes différentes :

recherche-d-info-45.png

recherche-d-info-46.png

Notez que si vous quittez l’interface de filtrage puis y revenez, Access aura restructuré la grille de critères comme suit :

recherche-d-info-47.png

Priorité du ET sur le OU

Il est important de noter que les ET booléens, correspondant aux critères sur la même ligne, sont effectués avant les OU entre les lignes. Ainsi, par exemple, revenons au OU booléen pour repérer les documents avec « métier » soit dans leur tire, soit dans le titre du périodique (TITP) :

recherche-d-info-38.png

et supposons maintenant qu’on veut n’obtenir que les documents d’avant 2020. On veut donc ajouter un ET booléen avec le critère DATP < "2020" (rappelez-vous que le champ DATP est un champ texte). Comme les ET booléens sont effectués en premier, il faudra dupliquer le critère DATP < "2020" pour qu’il s’applique à chacune des lignes :

recherche-d-info-43.png

recherche-d-info-44.png

Exercice

Simplifiez le critère dans le filtre suivant :

recherche-d-info-25.png

Réponse : < 10


Recherche dans les champs à occurrences multiples

Jusqu’ici, nous n’avons formulé que des critères touchant les champs de la table principale d’INFORM-R : la table documents. Nous allons maintenant voir comment formuler des critères qui touchent les champs « à occurrences multiples » : les champs AUTR et DESC; par exemple, faire une recherche de documents à partir d’un descripteur ou d’un nom d’auteur.

Même si la chose peut être surprenante, nous allons continuer à travailler sur une seule table, avec la même interface de filtrage. La différence, c’est que la table sur laquelle nous allons appliquer les filtres ne sera pas la table documents elle-même, mais plutôt le résultat d’une autre requête. Cette requête sera une jointure, au sein de laquelle seront réunies les informations de la table documents et de la ou des tables correspondant au(x) champ(s) que nous voulons interroger. Ces tables sont AUTRocc et DESCocc.

Jointure avec auteurs

Pour pouvoir formuler des critères sur les auteurs – ou combiner des critères sur les auteurs avec des critères sur les autres champs de documents – il faut créer une jointure qui fait le lien entre les documents et les auteurs.

Pour ce faire :

  1. Entamer la création d’une requête, comme vous l’avez fait précédemment pour les listes de choix.
  2. Ajouter les tables documents et AUTRocc. Access marquera par une ligne la clé externe qui lie les tables.
  3. Configurez la partie du bas de la requête comme suit :

    recherche-d-info-48.png

  4. Sauvegardez la requête sous le nom docs-AUTR, qui apparaîtra alors dans la section Requêtes du Volet de navigation.

Ouvrez maintenant la requête en mode Feuille de données :

recherche-d-info-49.png

Vous remarquerez que certaines informations concernant les documents sont répétées : c’est que la jointure réplique les champs de la table documents pour chacun des auteurs du document. Ainsi, comme le document 1 a deux auteurs, ses informations apparaissent 2 fois, mais avec chaque fois un nom d’auteur différent (champ AUTR, la dernière colonne).

De façon à visualiser plus facilement le champ AUTR dans les exemples de cette section, déplacez-le entre TITP et TOED, comme vous avez fait précédemment pour DACR.

Une fois le déplacement effectué, vous obtiendrez l’affichage suivant :

recherche-d-info-50.png

où il est plus facile de vérifier que les deux lignes portant le NO 1 ont chacune un nom d’auteur (AUTR) distinct.

Filtrage par auteur

Pendant que la requête docs-AUTR est ouverte en mode Feuille de données, on peut appliquer des critères de filtrage sur tous les champs de la jointure, c’est-à-dire tous les champs provenant de documents et le champ AUTR.

Voici un exemple :

recherche-d-info-55.png

recherche-d-info-56.png

Évidemment, on pourrait combiner un critère sur le champ AUTR avec des critères sur d’autres champs avec des opérateurs booléens, comme nous avons fait précédemment sur la table documents. Faites vos propres expérimentations.

Une autre interface de filtrage

Pour les champs qui, comme AUTR, sont soumis à une liste d’autorité modifiable, une autre interface de filtrage, déjà évoquée dans un texte précédent, peut s’avérer utile.

On ouvre cette interface en cliquant sur le petit triangle à droite du nom de champ :

recherche-d-info-51.png

Une fois ouverte, cette interface permet de sélectionner les valeurs qui nous intéressent (ici, des noms d’auteur) par simple boîte-à-cocher :

recherche-d-info-52.png

Par exemple, si on ne coche que Rose Châteauvert, on n’obtiendra que les documents dont cette personne est auteure :

recherche-d-info-53.png

recherche-d-info-54.png

Jointure avec descripteurs

La préparation de la jointure permettant de formuler des recherches impliquant les descripteurs est tout à fait analogue à celle pour les auteurs.

Refaites donc les mêmes étapes, en ajoutant cette fois-ci la table DESCocc (au lieu de AUTRocc) et en sauvegardant la requête sous le nom docs-DESC. Expérimentez ensuite avec la formulation de recherches (filtres) impliquant les descripteurs.

Jointure avec auteurs et descripteurs

Si on veut combiner au sein d’un même filtre des critères portant sur les auteurs et sur les descripteurs, il faudra une jointure des trois tables documents, AUTRocc et DESCocc. Encore là, la création de cette requête est tout à fait analogue à celle pour les auteurs et pour les descripteurs séparément.

Refaites donc les mêmes étapes, en ajoutant cette fois-ci les tables AUTRocc et DESCocc. La jointure aura l’allure suivante :

recherche-d-info-58.png

Sauvegardez-la sous le nom docs-AUTR-DESC.

Expérimentez ensuite avec la formulation de recherches (filtres) combinant au moins un critère sur les auteurs et un critère sur les descripteurs.

Critères sur des occurrences distinctes

Supposons que l’on recherche les documents ayant comme descripteurs "clergé" et "environnement". En première analyse, on serait tenté de formuler le filtre suivant sur la jointure docs-DESC :

recherche-d-info-57.png

Or, comme vous pouvez le constater en appliquant vous-même ce filtre, le résultat obtenu est vide. Pour comprendre ce qui se passe, commençons par regarder le résultat de la jointure docs-DESC exécutée sans aucun filtre (pour faciliter la lecture, nous avons déplacé le champ DESC juste après TITR) :

recherche-d-info-AJOUT-1.png

Il n’y a qu’un seul champ DESC et chaque ligne du résultat ne présente donc qu’une seule occurrence de descripteur. Le filtre tel que nous l’avons formulé plus haut revient donc à demander de retenir les lignes où le même descripteur est à la fois égal à "clergé" et à "environnement", ce qui est évidemment impossible (rappelez-vous que le filtre est appliqué à chaque ligne une par une et indépendamment des autres lignes). D’où le fait qu’aucune ligne n’est retenue et que le résultat du filtre est vide.

Il existe plusieurs façons d’obtenir le résultat voulu avec le modèle relationnel. Une des plus faciles est d’utiliser une forme un peu plus complexe de jointure, qui combinera la table documents avec deux copies de la table DESCocc.

Commençons d’abord comme vous avez fait tout à l’heure pour docs-DESC :

recherche-d-info-AJOUT-2.png

Incluons maintenant la seconde copie de DESCocc, en ajoutant simplement de nouveau la table; la copie sera automatiquement nommée DESCocc_1 :

recherche-d-info-AJOUT-3.png

Comme d’habitude, vous pouvez déplacer cette seconde copie où vous voulez dans le diagramme; par exemple :

recherche-d-info-AJOUT-4.png

Maintenant, de façon similaire à ce que vous avez fait à l’étape 3 de la création de la clé externe de AUTRocc vers documents, glissez-déposez le champ noDoc de DESCocc_1 sur le champ NO de documents. Access répondra en traçant une ligne entre les deux champs :

recherche-d-info-AJOUT-5.png

Enfin, configurez la partie du bas tel qu’indiqué :

recherche-d-info-AJOUT-6.png

Si ce n’est pas déjà fait, sauvegardez maintenant la requête sous le nom docs-DESC-DESC.

Notez que si vous fermez la requête (après sauvegarde) et la rouvrez ensuite à nouveau en mode création, vous remarquerez que les cardinalités (1 et ) auront disparu du diagramme. Cela n’affecte cependant en rien le fonctionnement de la requête.

Maintenant, comme nous l’avons fait pour docs-DESC, regardons ce que donne la requête docs-DESC-DESC exécutée sans filtre (encore ici, les champs descripteurs ont été déplacés pour faciliter la lecture) :

recherche-d-info-AJOUT-7.png

Ce qui frappe tout de suite est le grand nombre de lignes. En fait, cette jointure affiche toutes les combinaisons de deux descripteurs d’un même document, chacune combinaison sur une ligne. Regardons par exemple la section qui concerne le document 3 :

recherche-d-info-AJOUT-8.png

Neuf lignes du résultat concernent le document 3, parce que ce document est en lien avec (ou « possède ») trois occurrences de descripteur, ce qui représente neuf façons de les combiner deux à deux (trois possibilités pour le premier × trois possibilités pour le second).

Ce qu’il faut retenir, c’est que cette requête nous permet maintenant de formuler des critères impliquant deux descripteurs distincts d’un même document. Ainsi, par exemple, les documents ayant à la fois le descripteur "clergé" et le descripteur "environnement" peuvent maintenant être repérés avec le filtre suivant, appliqué à docs-DESC-DESC (ouverte en mode Feuille de données) :

recherche-d-info-60.png

qui donne comme résultat :

recherche-d-info-AJOUT-9.png

Le même principe peut être utilisé pour effectuer le même genre de recherche avec les auteurs, en passant cette fois-ci par une jointure de documents avec deux copies de AUTRocc, jointure que l’on nommera docs-AUTR-AUTR, pour poursuivre la nomenclature utilisée jusqu’ici.


Filtres sauvegardés

Que la table sur laquelle on applique un filtre soit une table permanente de la BD ou le résultat d’une jointure, il est possible de sauvegarder la définition du filtre en tant que requête enregistrée dans la BD.

À partir de l’interface de définition du filtre, on retourne à la zone Trier et filtrer du bandeau, où on cliquera sur Options avancées puis sélectionnera Enregistrer en tant que requête :

recherche-d-info-62.png

Access demandera le nom à donner à la requête, laquelle apparaîtra ensuite dans la section Requêtes du Volet de navigation.

La définition de la requête ainsi sauvegardée inclut la table sur laquelle le filtre a été défini et le filtre lui-même. Lorsqu’on exécute la requête sauvegardée (double-clic dessus ou encore clic-droit puis Ouvrir), le résultat est déjà filtré.


Filtres et requêtes à paramètres

Filtres à paramètres

Bien qu’il puisse être utile de sauvegarder comme requêtes des filtres avec un ou des termes de recherche fixes (par exemple, tous les documents avec "metier" dans leur titre), la véritable utilité des filtres sauvegardés se révèle avec les filtres à paramètres.

Un filtre à paramètre(s) est un filtre dans lequel un ou plusieurs termes de recherche ne sont pas encore spécifiés. Cela permet, par exemple, de définir un filtre qui recherche dans les titres, sans préciser tout de suite la chaîne à rechercher. Ce n’est qu’au moment de l’application du filtre qu’Access demandera à l’utilisateur la chaîne spécifique à rechercher.

La première chose à faire pour créer un filtre à paramètre(s) est de déterminer le libellé exact de la ou des questions qui devront être posées à l’utilisateur pour spécifier entièrement le filtre à appliquer. Par exemple, pour poursuivre avec l’exemple de la recherche dans les titres, la question pourrait être :

Chaîne à chercher dans les titres ?

On obtient le nom du paramètre correspondant en ajoutant des crochets [ ] de part et d’autre de la question :

[Chaîne à chercher dans les titres ?]

On va ensuite rédiger le critère en remplaçant un terme de recherche spécifique par le nom du paramètre, par exemple, si on travaille sur la table documents :

recherche-d-info-63.png

Au moment où on applique le filtre, Access nous demande :

recherche-d-info-64.png

et c’est notre réponse à cette question qui sera utilisée comme terme de recherche. Ainsi, par exemple, si on répond :

recherche-d-info-65.png

résultat obtenu sera comme si le critère était Comme "*metier*" :

recherche-d-info-27.png

Notez qu’il ne faut pas inscrire les guillemets dans la réponse à la question.

Requêtes à paramètres

Si nous sauvegardons ce filtre à paramètre en tant que requête, nommée par exemple rech-TITR, la requête sauvegardée sera une requête à paramètre et à chaque fois qu’on l’exécutera, Access reposera la question correspondant au paramètre, ce qui permettra de rechercher une chaîne différente à chaque fois.

Truc du métier

Les requêtes à paramètre(s) sont une excellente façon de préparer des requêtes de recherche à l’intention des utilisateurs de la BD qui ne connaissent pas Access. Les utilisateurs n’ont qu’à répondre à une ou quelques questions pour obtenir l’information voulue.

Les requêtes à paramètre(s) sont parfois appelées requêtes grand public.

Recherche textuelle avec paramètres

Avant d’aller plus loin, notons tout de suite que notre dernier exemple pourrait être amélioré de deux façons :

  1. D’abord, pour que la recherche s’effectue n’importe où dans le champ, l’utilisateur doit inscrire lui-même les caractères génériques * au début et à la fin de la chaîne recherchée. Il serait beaucoup plus simple et naturel que l’utilisateur n’ait pas à inscrire ces caractères et que ce soit le critère lui-même qui les « ajoute » avant et après la chaîne fournie par l’utilisateur.
  2. Ensuite, l’utilisateur ne doit surtout pas inscrire de signes diacritiques dans sa réponse, puisque la chaîne est recherchée dans la version désaccentuée des titres et, donc, tout signe diacritique dans la réponse entraîne automatiquement un résultat vide. Pour éviter cette contrainte, il serait utile que le critère ignore simplement d’éventuels signes diacritiques qui pourraient se trouver dans la réponse de l’utilisateur.

Pour le point 1, le critère peut accoler l’astérisque "*" à gauche et à droite du paramètre avec l’opérateur de concaténation &.

Pour le point 2, il suffit d’appliquer la fonction désac non seulement au champ interrogé, mais aussi à la chaîne fournie par l’utilisateur.

Au final, le critère « amélioré » se lira comme suit :

recherche-d-info-66.png

Ainsi, l’utilisateur n’a pas à inscrire lui-même les "*" au début et à la fin de la chaîne recherchée et s’il inscrit par distraction des caractères accentués dans sa réponse, les accents seront ignorés. Par exemple, la réponse :

recherche-d-info-67.png

donnera bel et bien le résultat escompté :

recherche-d-info-27.png

Exemple à deux paramètres

Voici un exemple à deux paramètres, que l’on pourrait sauvegarder dans une requête appelée intervalle-DATP :

recherche-d-info-68.png

L’opérateur Entre … Et … vérifie si une valeur est située entre une valeur minimum et une valeur maximum.

Comme il y a deux paramètres, Access posera deux questions au moment de l’exécution de la requête. Voici un enchaînement possible :

recherche-d-info-69.png

recherche-d-info-70.png

recherche-d-info-71.png


Formulaires pour la recherche

Scénarios de recherche et formulaires

Supposons maintenant que notre BD INFORM-R a été alimentée suffisamment pour permettre des recherches intéressantes. Quels sont les différents scénarios, ou contextes, d’utilisation possibles de la BD en recherche ?

On peut distinguer deux scénarios différents, selon le type de personne désirant effectuer la recherche :

  1. Si la personne a une bonne connaissance d’Access (par exemple, vous, la conceptrice ou l’administratrice de la BD) et qu’elle compte formuler elle-même un filtre correspondant à son besoin d’information, alors le point de départ sera soit la table documents, soit une des jointures permettant la recherche dans les champs à occurrences multiples.
  2. Si la personne ne connaît pas Access, le point de départ sera une requête à paramètres sauvegardée à son intention par la gestionnaire de la BD. À l’ouverture de la requête, l’utilisateur précisera la valeur de chaque paramètre, puis le résultat de la recherche sera affiché.

Dans les deux cas, à partir de ce point de départ, et en fonction de son habilité avec Access, la personne peut, si nécessaire, naviguer dans les données et/ou les filtrer pour satisfaire son besoin d’information.

Quel que soit le scénario, le point de départ est toujours une table : soit la table permanente documents, soit le résultat d’une jointure (aussi une table), soit le résultat d’une requête à paramètres (aussi une table).

Rappelez-vous que les outils de navigation et le filtrage fonctionnent non seulement en mode Feuille de données, mais également en mode Formulaire. Donc, la démarche de recherche pourrait être démarrée en mode Formulaire aussi bien qu’en mode Feuille de données, pour peu qu’on dispose d’un formulaire pour la table servant de point de départ.

C’est exactement ce que nous allons faire ici : pour chaque table pouvant être le point de départ d’une recherche, nous allons créer un formulaire qui permettra d’intégrer avec fluidité la recherche et la consultation des documents, et même leur modification. Une fois ces formulaires créés, il seront avantageusement utilisés comme points de départ pour des recherches, plutôt que les tables correspondantes en mode Feuille de données.

Ajout de macros à la BD

Comme étape préalable à la création des formulaires, nous devons ajouter deux macros à notre BD (une macro est une espèce de programme écrit dans un langage de programmation spécialisé de très haut niveau). Ces macros ne sont pas complexes, mais comme la conception de macros dépasse la portée du cours, elles vous sont fournies déjà faites. Si vous souhaitez les analyser par vous-même pour en comprendre la structure, vous en aurez l’occasion en suivant les instructions données ci-après.

Intégration des macros actualiser et modifierDoc dans votre BD :

  1. Ouvrez votre BD dans Access.
  2. Ouvrez cette BD, nommée outils-rech.accdb, dans une seconde copie d’Access.
  3. Dans la BD outils-rech.accdb, dans la section Macros du Volet de navigation, faites clic-droit sur l’élément appelé actualiser, puis choisissez Copier.
  4. Retournez dans votre base et, n’importe où dans le Volet de navigation, faites clic-droit puis choisissez Coller.
  5. Confirmez le nom de la macro : actualiser.
  6. Dans la BD outils-rech.accdb, dans la section Macros du Volet de navigation, faites clic-droit sur l’élément appelé modifierDoc, puis choisissez Copier.
  7. Retournez dans votre base et, n’importe où dans le Volet de navigation, faites clic-droit puis choisissez Coller.
  8. Confirmez le nom de la macro : modifierDoc.
  9. Fermez la copie d’Access où se trouve la BD outils-rech.accdb. Vous devrez peut-être confirmer la suppression du contenu du presse-papier.

Facultatif : Pour visualiser la définition d’une macro, faites clic-droit dessus dans le Volet de navigation, puis sélectionnez Mode création.

Formulaire pour documents

Nous avons déjà créé un formulaire pour la consultation (en lecture seulement) de tout document, quel que soit son type bibliographique. Nous allons modifier ce formulaire pour réaliser l’intégration recherche-consultation-modification évoquée tout à l’heure. Nous nous servirons ensuite de cette nouvelle mouture du formulaire comme base pour les autres formulaires :

  1. Ouvrez le formulaire documents en mode Création.

  2. Dans la feuille de propriétés du formulaire, effectuez les réglages suivants :

    recherche-d-info-72.png

    et

    recherche-d-info-72b.png

Pour pouvoir passer directement de la consultation des documents à leur modification, nous allons ajouter dans l’entête du formulaire un bouton qui permettra d’accéder au formulaire de saisie approprié au type bibliographique, grâce à la macro modifierDoc.

  1. Cliquez sur Conception de formulaires au menu principal.

  2. Dans la section Contrôles du ruban, cliquez sur l’icône rectangulaire vide (marquée en jaune dans l’illustration) :

    recherche-d-info-73.png

    Le curseur se transforme en +.

  3. Avec le curseur en +, tracez un rectangle dans l’entête du formulaire, à peu près à l’endroit et de la taille illustrés ici :

    recherche-d-info-75.png

    Ce rectangle se transforme en bouton dès qu’on relâche le bouton de la souris et l’Assistant bouton de commande démarre.

  4. À la première étape de l’Assistant Bouton de commande, effectuez les choix suivants :

    recherche-d-info-74.png

  5. À l’étape suivante, choisissez la macro modifierDoc :

    recherche-d-info-76.png

  6. À l’étape suivante, spécifiez le texte du bouton :

    recherche-d-info-77.png

  7. Vous pouvez maintenant cliquer sur le bouton Terminer (sans passer à l’étape suivante). L’entête du formulaire comporte maintenant un bouton « Modifier le document » :

    recherche-d-info-78.png

  8. Fermez le formulaire et confirmez la sauvegarde des modifications.

Fonctionnement du nouveau formulaire

Nous allons maintenant explorer les possibilités de notre formulaire amélioré et voir comment il contribue au passage fluide entre la consultation des documents, la recherche et la modification des documents.

Ouvrez le formulaire en mode Formulaire, par exemple en double-cliquant dessus dans le Volet de navigation.

recherche-d-info-79.png

Comme vous pouvez voir, le formulaire est divisé en deux verticalement. La ligne séparatrice entre les deux parties est déplaçable et Access se souviendra de son emplacement d’une utilisation à l’autre du formulaire.

La partie du haut est en mode Feuille de données. Elle permet de se faire une idée rapide du contenu de la table consultée ou, si on applique un filtre, du résultat de l’application du filtre.

Petit bogue d’Access

Vous noterez que chaque ligne de la partie Feuille de données commence par un + encadré (⊞), signalant la présence d’une sous-feuille de données. La sous-feuille d’une ligne peut bien sûr être développée en cliquant sur le ⊞, et elle fera effectivement apparaître les auteurs associés au document. Mais cette sous-feuille est inutile, puisqu’on peut voir toutes les informations relatives à un document dans la partie du bas du formulaire, sur simple sélection du document dans la partie du haut.

Idéalement, il n’y aurait simplement aucune sous-feuille de données associée à la partie du haut. Malheureusement, un bogue dans Access empêche de n’avoir aucune sous-feuille. Il faut donc nous résigner à espérer que la présence des ⊞ ne soit pas trop distrayante pour l’utilisateur, qui devra tout simplement en faire abstraction.

La partie du bas permet de voir, en lecture seulement, les détails du document couramment sélectionné dans la partie du haut. Si on veut modifier (ou supprimer) le document, on accède au formulaire de saisie approprié – articles ou monographies, selon le type bibliographique du document – en cliquant sur le bouton recherche-d-info-80.png que nous avons ajouté et qui se retrouve maintenant dans l’entête de la partie du bas.

Effectuez quelques expérimentations avec ce nouvel environnement, où s’intègrent de façon fluide la consultation, la recherche (par le truchement des filtres) et la modification des documents.

Ajout ou suppression de documents

Quand on « appelle » un des formulaires de saisie par le bouton recherche-d-info-80.png, il est possible, dans ce formulaire, de supprimer le document courant et/ou de créer de nouveaux documents (du même type bibliographique que le document courant). Ces opérations sont tout à fait légitimes.

Après l’une ou l’autre de ces opérations, lorsqu’on ferme le formulaire de saisie et qu’on revient dans le formulaire principal, ces modifications ne sont pas immédiatement reflétées (en cas de suppression du document courant, les champs afficheront la mention #Supprimé).

Pour ramener l’affichage à la normale, il suffit d’appuyer sur la touche F5, ou encore de cliquer sur l’icône Actualiser tout dans la section Enregistrements du bandeau Accueil :

recherche-d-info-a6.png

Notez que la façon « normale » de faire la saisie de nouveaux documents est d’ouvrir directement le formulaire approprié au type bibliographique : articles pour un article et monographies pour une monographie.

Améliorations aux formulaires de saisie

Comme les formulaires articles et monographies sont maintenant intégrés aux scénarios de recherche / consultation / modification des documents, il est encore plus pertinent de les doter d’une grande convivialité. C’est pourquoi nous apportons maintenant à ces formulaires des modifications qui en amélioreront l’utilisabilité.

Modifications au formulaire monographies

Ouvrez le formulaire en mode Création.

Entête du formulaire

En l’état, l’entête du formulaire indique « documents » :

recherche-d-info-81.png

L’entête sera plus précis si l’on remplace « documents » par « monographie ». Double-cliquez sur le mot « documents » et remplacez-le par « monographie » :

recherche-d-info-82.png

Indication des champs obligatoires

Hormis AUTR, que nous traiterons plus loin, les champs obligatoires pour une monographie sont : TITR, DATP, EDIT et COLL. D’autres champs sont obligatoires au niveau de la table documents, mais ils n’ont pas besoin d’être portés à l’attention de l’utilisateur à la saisie, soit parce qu’ils ont une valeur par défaut, soit parce qu’ils sont gérés par Access.

Pour indiquer les champs obligatoires, nous allons mettre leur intitulé en rouge :

  1. Faites Ctrl-clic sur les quatre intitulés TITR, DATP, EDIT et COLL.
  2. Dans la Feuille de propriétés, effectuez le réglage suivant :

    recherche-d-info-83.png

  3. Dans la section Contrôles du bandeau Conception de formulaire, cliquez sur l’icône Aa pour créer une nouvelle « étiquette » (zone de texte) :

    recherche-d-info-84.png

    que vous disposerez ainsi dans le haut de la section Détail du formulaire :

    recherche-d-info-85.png

  4. Dans l’étiquette, inscrivez :

    recherche-d-info-86.png

  5. Ensuite, alors que l’étiquette est sélectionnée, faites le réglage suivant dans la Feuille de propriétés :

    recherche-d-info-87.png

    Le numéro de l’étiquette (195) sera probablement différent. Le texte de l’étiquette paraîtra maintenant en rouge :

    recherche-d-info-88.png

Directive de saisie pour champ AUTR

À cause de la façon dont est fait le formulaire AUTRocc, utilisé comme sous-formulaire du formulaire monographies, il n’est pas possible de faire afficher le nom de champ AUTR en rouge. Nous allons compenser cette lacune en ajoutant une directive de saisie juste au-dessus du sous-formulaire :

  1. Par Ctrl-clic, sélectionnez les trois champs TOED, DATP et COLC, puis faites-les glisser d’une position vers le haut avec la souris. Cela libèrera de l’espace pour la directive de saisie.
  2. Comme précédemment, créez une étiquette et positionnez-la juste au-dessus du sous-formulaire des auteurs (AUTRocc). Inscrivez-y le texte « Inscrire au moins un auteur (AUTR) » et faites-la afficher en rouge. Le résultat aura cette allure :

    recherche-d-info-89.png

Sauvegarde et vérification du formulaire

Sauvegardez le formulaire et passez au mode Formulaire pour vérifier l’apparence de l’ensemble :

recherche-d-info-90b.png

Si nécessaire, retournez au mode Création pour effectuer les ajustements requis.

Modifications au formulaire articles

Procédez de façon analogue avec le formulaire articles, avec les paramètres suivants :

Formulaires pour les autres points de départ

Tel que mentionné précédemment, outre la table documents, une recherche peut avoir comme point de départ une des jointures permettant la recherche dans les champs à occurrences multiples ou une requête à paramètres. Dans les deux cas, il s’agit de requêtes sauvegardées dans notre BD.

Pour chacune de ces requêtes, on peut facilement créer un formulaire qui nous permettra d’intégrer avec fluidité la recherche et la consultation des documents. Nous allons faire l’exercice avec la jointure docs-AUTR, mais le principe est le même avec les autres jointures et avec les requêtes à paramètres :

  1. Dans le Volet de navigation, faites Clic-droit sur le formulaire documents, puis sélectionnez Copier.
  2. Toujours dans le Volet de navigation, faites Clic-droit, puis sélectionnez Coller. Inscrivez docs-AUTR (le même nom que la requête) comme nom de formulaire.
  3. Ouvrez ce nouveau formulaire en mode Création.
  4. Dans la Feuille de propriétés du formulaire, effectuez le réglage suivant :

    recherche-d-info-91.png

    Il s’agit donc d’inscrire le nom de la requête comme Source.

Si la requête n’est pas une jointure, l’opération est terminée : fermez et sauvegardez le formulaire. S’il s’agit d’une jointure, poursuivre avec les étapes suivantes :

  1. Dans la section Outils du bandeau , cliquez sur l’icône Ajouter des champs existants :

    recherche-d-info-92.png

    Une liste de tous les champs dans la requête s’affichera; pour docs-AUTR, cette liste est :

    recherche-d-info-93.png

  2. Identifiez dans cette liste les champs qui ne sont pas des champs de la table documents. Pour docs-AUTR, seul le champ AUTR est dans ce cas.
  3. Pour chaque champ identifié à l’étape précédente :

Quand tous les champs identifiés à l’étape 6 ont été traités à l’étape 7, l’opération est terminée : fermez et sauvegardez le formulaire.

Si désiré, vous pouvez rouvrir en mode Formulaire le formulaire tout juste sauvegardé et réordonner les colonnes de la partie du haut de façon à rendre plus faciles à voir les champs identifiés à l’étape 6. Par exemple, pour docs-AUTR, on pourrait souhaiter positionner le champ AUTR juste à la droite de TITP :

recherche-d-info-a7.png

Pour déplacer une colonne, procédez comme vous avez fait ci-dessus pour le champ DACR.

Particularité des formulaires basés sur une jointure

Lorsqu’un formulaire basé sur une jointure est utilisé comme point de départ d’une recherche et que l’on modifie un document en cliquant sur le bouton recherche-d-info-80.png, le phénomène suivant peut se produire.

Si, pendant la modification du document, on ajoute et/ou supprime une ou des occurrences d’un champ à occurrences multiples faisant partie de la jointure (AUTR et/ou DESC), alors au moment où on ferme le formulaire de saisie et qu’on retourne au formulaire principal, les occurrences ne sont pas automatiquement mises à jour dans la partie Feuille de données de ce dernier (la partie du haut).

Voici un exemple avec le formulaire docs-DESC :

  1. À l’ouverture, le formulaire se présente ainsi :

    recherche-d-info-a0b.png

  2. Cliquons sur Modifier le document, ce qui ouvre le formulaire monographies pour modifier le document 1 :

    recherche-d-info-a1b.png

  3. Supposons qu’on veuille retirer le descripteur « radiologie ». D’abord, on le sélectionne en cliquant sur le carré juste à gauche du descripteur :

    recherche-d-info-a2.png

    puis on le retire en appuyant sur Suppr. (Del). Il faut confirmer la suppression en cliquant sur Oui :

    recherche-d-info-a3.png

  4. Le descripteur est maintenant retiré :

    recherche-d-info-a4b.png

  5. On ferme maintenant le formulaire monographies, et on se retrouve au formulaire principal (docs-DESC) :

    recherche-d-info-a5b.png

  6. Pour ramener l’affichage à la normale, il suffit d’appuyer sur la touche F5, ou encore de cliquer sur l’icône Actualiser tout dans la section Enregistrements du bandeau Accueil :

    recherche-d-info-a6.png