11.07.2015 Views

L'interrogation par l'exemple avec Access

L'interrogation par l'exemple avec Access

L'interrogation par l'exemple avec Access

SHOW MORE
SHOW LESS
  • No tags were found...

Transformez vos PDF en papier électronique et augmentez vos revenus !

Optimisez vos papiers électroniques pour le SEO, utilisez des backlinks puissants et du contenu multimédia pour maximiser votre visibilité et vos ventes.

Ms <strong>Access</strong>Requête portant sur plusieurs tablesSi vous désirez obtenir le nombre d’adhérents <strong>par</strong> catégorie d’inscription, le libellé se trouve dans latable « SECTION ». Il va falloir faire un lien entre les deux tables. Deux cas peuvent se présenter.:+ le lien entre les tables a déjà été définie en utilisant la commande « RELATIONS ». L’ajout destables dans la requête, porte automatiquement le lien.+ le lien n’a pas encore été défini. Il est alors possible d’établir une relation temporaire et graphiqueen cliquant glissant.La relation existeEn ajoutant les deux tables dans la fenêtre graphiqu,le lien ap<strong>par</strong>aît automatiquementLe choix des champs comme s’il n’y avait qu’uneseule table. l’utilisateur clique deux fois surSEC_LIBELLE de la table SECTION, puis deux foissur ADH_CODE de la table ADHERERENT.Les liens définis en tant querelations ap<strong>par</strong>aissent lors del’ajout des tables.On obtient une requête donnantle nom des bateaux classés <strong>par</strong>type et <strong>par</strong> Catégorie de bateautrié <strong>par</strong> ordre croissant.La relation n’existe pasIl est possible que les relations n’aient pas été définies. C’est notamment le cas lorsqu’on vientd’ajouter une table., mais cela est encore plus vrai lorsqu’une requête doit porter sur le résultatd’autres requêtes.Pour créer un lien entre deux tables ou requêtes cliquez (dans l’exemple suivant) sur l’attribut age del’une des requête, et sans relâchez la pression du bouton gauche de la souris glissez le pointeur versl’attribut age de l’autre requête. Le lien ap<strong>par</strong>aît sans toutefois préciser le type de relations ( 1-1 ou 1-N).Jacques Chambon 8/11


Ms <strong>Access</strong>Nous voulons connaître le nom etle prénom du plus vieil adhérent.En établissant une relation entre laliste de tous les adhérents de plusde 60 ans et l’âge du vieil adhérent,la requête sélectionne le nom et leprénom correspondant à l’âgemaximum des Adhérent.Cette opération de correspondances’appelle une JOINTURE.La jointure externeAppelée aussi « jointure forcée », cette opération permet d’établir des correspondances entre deuxtables, même si des informations communes n’existent pas.Si nous établissons une relation entre Adhérent et propriétaire, sans autre précision, <strong>Access</strong> vaassocier les enregistrements ayant une valeur commune dans les deux tables. Nous obtiendrons laliste des propriétaires de bateau. C’est une EQUI-JOINTURE.Au cercle de voile de l’Atlantique tout le monde n’est pas propriétaire d’un bateau.En cliquant deux fois sur le lien graphique entre table ADHERENT et Table PROPRIETAIRE, nousobtenons la fenêtre de Propriétés de la Jointure.Le choix de la deuxième option, va obliger <strong>Access</strong> à réaliser une jointure sur tous les Adhérents. Nousallons obtenir en face de chaque adhérent soit un numéro de bateau, s’il en est propriétaire, soit lavaleur « NULL » s’il ne possède pas de bateau. La JOINTURE EXTERNE ainsi réalisée peut êtrequalifiée de « GAUCHE ». Sur le graphique des liens, cette caractéristique est soulignée <strong>par</strong> uneflèche.Jacques Chambon 9/11


Ms <strong>Access</strong>La requête ci-contre permet d’obtenir laliste des adhérents qui ne possèdent pasde bateauLa jointure réflexiveDepuis 1970, les dirigeants du Cercle, ont décidé pour favoriser les contacts entre membres, que toutnouvel adhérent devait être <strong>par</strong>rainé <strong>par</strong> un ancien. Dans la table ADHERENT, ce lien est rappelé <strong>par</strong>l’attribut ADH-PARRAIN, qui pointe sur le code d’un autre adhérent.Si l’on désire obtenir la liste des noms des <strong>par</strong>rains et de leur « filleul » il va falloir établir une relationsur la même table (JOINTURE REFLEXIVE).Il faut ajouter 2 fois la même table(Adhérent). <strong>Access</strong> les différencie ennumérotant la seconde.Il est dès lors possible d’établir le liengraphique entre ADH_CODE de la tableADHERENT et ADH_PARRAIN de la tableADHERENT_1.Requête <strong>par</strong>amétréeLa première colonne contiendra le nom du<strong>par</strong>rain (trié <strong>par</strong> ordre croissant), laseconde, le nom du filleul.Un nom de variable peut être utilisé comme critère. Dans la requête suivante, la valeur de l’âge estassociée à « a: ». Au moment de l’exécution de la requête, <strong>Access</strong> fera ap<strong>par</strong>aître la fenêtreL’utilisateur pourra frapper la valeur désirée. Il obtiendra <strong>par</strong> exemple, la ré<strong>par</strong>tition des adhérents demoins de 25 ans.Jacques Chambon 10/11


Ms <strong>Access</strong>Le nom de lavariable ap<strong>par</strong>aîtdans la ligne Critèresentourée <strong>par</strong> desCrochets.Le type de cettevariable doitobligatoirement êtredéclaré dans lafenêtre « Paramètresde la requête ».Cette fenêtre estappelée <strong>par</strong> l’option« Paramètres »dumenu RequêteJacques Chambon 11/11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!