24
_________________________________________________________________________________________ Exercices Bases de données relationnelles Jean-Claude Armici _________________________________________________________________________________________ J-C Armici www.unvrai.com

Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Embed Size (px)

Citation preview

Page 1: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

_________________________________________________________________________________________

Exercices

Bases de données

relationnelles

Jean-Claude Armici _________________________________________________________________________________________

J-C Armici www.unvrai.com

Page 2: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 1 (Création et manipulation de table) Dans Access, partez d'une base de données vide dans laquelle vous ajouter une table dont le nom sera VOITURES. Vous devez définir les champs qui vous paraissent nécessaires pour répertorier les voitures d'un garage qui vend et achète des voitures d'occasion. Le travail consiste à inventorier et créer les champs à mettre dans cette table, mais également à choisir les bons types et éventuellement sous-types de champs. Parmi les champs utiles pourraient figurer:

• La marque

• Le modèle

• La couleur

• L'année de construction

• Etc

Après avoir créé et sauvegardé la table, remplissez quelques enregistrements afin d'observer le comportement d'Access lors d'une adjonction, voir d'une modification ou suppression d'un enregistrement.

Exercice 2 (requêtes simples avec une table) Cet exercice est basé sur la table CUSTOMER contenue dans la base de données Access CLIENTS.MDB.

• Prendre connaissance de la structure et du contenu de la table Customer

• Créer une nouvelle requête et y placer la table Customer

• Répondre aux questions suivantes, en modifiant chaque fois la même requête. (par curiosité observer également la fenêtre montrant le code SQL):

• Combien y a-t-il de contacts dont le nom contient le mot "david" ?

• Combien y a-t-il de contacts dont le pays n'est pas les Etats-Unis ?

• Parmi les personnes résultant de la requête précédente, combien habitent au Canada ?

• Combien de personnes de la région de WA possèdent un fax ?

• Quels sont les noms des personnes qui ont un fax, qui sont des managers et qui habitent la ville de Berkeley

• Combien de personnes habitent à Londres ou à Portland et ont un nom qui commence par une lettre entre "A" et "L" ?

• Combien de personnes habitent à Londres et ont un fax, ou habitent au Canada et sont des managers ?

J-C Armici www.unvrai.com

Page 3: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 3 (formulaire simple, basé sur une table, avec utilisation de l'assistant) Cet exercice est basé sur la table CUSTOMER contenue dans la base de données Access CLIENTS.MDB. Il consiste à créer un formulaire basé sur la table CUSTOMER en faisant appel à l'assistant de création de formulaires. Lors de la création vous préciserez à l'assistant:

• Que le formulaire est basé sur la table CUSTOMER

• Que vous désirez prendre tous les champs

• Que vous choisissez la présentation en "colonne simple"

• Le style du formulaire: vous êtes libre du choix

• De sauvegarder le formulaire sous le nom proposé (CUSTOMER)

Exercice 4 (formulaire simple, basé sur une requête, avec utilisation de l'assistant) On voudrait créer le même formulaire que pour l'exercice précédent, mais où le parcours des enregistrements s'effectue par ordre alphabétique du nom de la ville (champ City). Pour cela vous devez d'abord créer une nouvelle requête:

• Créez une nouvelle requête dans laquelle vous placez la table CUSTOMER

• Choisissez tous les champs de la table et placez-les dans la grille (partie inférieure de la fenêtre de la requête

• Dans la colonne City choisissez "tri par ordre croissant)

• Sauvegardez la requête sous le nom CUSTOMERTRI Reprenez ensuite les différentes étapes de l'exercice 3 avec les différences suivantes:

• Basez le nouveau formulaire sur la requête CUSTOMERTRI et non plus sur la table CUSTOMER

• Sauvegardez le nouveau formulaire sous le nom CUSTOMERTRI Vérifiez que le parcours des enregistrements se fait bien par ordre alphabétique des villes. Remarque: il n'est pas obligatoire de donner au formulaire le même nom que la table ou la

requête sur laquelle il est basé

J-C Armici www.unvrai.com

Page 4: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 5 (formulaire simple, basé sur une requête, avec utilisation de l'assistant, personnalisation) Cet exercice consiste à reprendre le formulaire créé dans l'exercice 4 et de le personnaliser. Voici comment il se présente à l'origine (créé à l'aide de l'assistant):

Et voici comment vous devez le transformer:

Les modifications peuvent se faire à l'aide des diverses barres d'outils et de la fenêtre "propriétés" (menu Affichage/Propriétés).

• Un champ a été supprimé

• Les libellés ont été francisés

• Les champs téléphone et fax sont en rouge/gras, les autres en bleu

• etc

J-C Armici www.unvrai.com

Page 5: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 6 (requêtes, SQL) Cet exercice est basé sur la table CUSTOMER contenue dans la base de données Access CLIENTS.MDB. Son but est d'observer comment Access met à jour la vue "mode SQL" et la vue "création" l'une en fonction de l'autre lorsque des changements sont effectués. Effectuez, par exemple les opérations suivantes:

• en mode création de requêtes, placez tous les champs dans la grille et passez en mode SQL

• écrivez l'instruction suivante dans la fenêtre SQL: "SELECT * FROM CUSTOMER;", passez en mode feuille de données, puis en mode création

• écrivez l'instruction suivante dans la fenêtre SQL: "SELECT Customer.* FROM CUSTOMER;", passez en mode feuille de données, puis en mode création

• écrivez l'instruction suivante dans la fenêtre SQL: " SELECT city, country from customer;", passez en mode feuille de données, puis en mode création. Une fois dans le mode création triez les résultats par ordre alphabétique de la ville (City) et repasser en mode SQL. Ajoutez enfin, dans le mode création, le critère "USA" pour le champ Country; visualisez les données et observez le changement dans le mode SQL

• essayez quelques autres combinaisons de tri, critères, etc Remarque: pour visualiser les résultats d'une requête il suffit de passe en "mode feuille de

données"

Exercice 7 (requêtes, structure des tables, type de champs) Le but de cet exercice est d'importer dans une nouvelle base de données (que vous appellerez EXE7.MDB) deux tables provenant de deux bases de données, de modifier leur structure et d'établir une relation entre elles. La première table s'appelle CUSTOMER et se trouve dans la base de données CLIENTS.MDB. La seconde table s'appelle COUNTRIES et se trouve dans la base de données NATIONS.MDB. La table CUSTOMER contient un champ Country dans lequel figure le pays sous forme de texte. Il y a beaucoup de redondances dans ce champ. L'exercice consiste à établir une relation de un à plusieurs entre la table COUNTRIES et la table CUSTOMER. Pour cela il faut créer une clé primaire numérique dans la table COUNTRIES et une clé étrangère correspondante dans la table CUSTOMER. Pour cela il faudra créer un champ et modifier le type d'un autre champ. Pour vous aider, voici une marche à suivre:

J-C Armici www.unvrai.com

Page 6: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

• Créer une nouvelle base de données (EXE7.MDB)

• Importer la table CUSTOMER de la base de données CLIENTS.MDB

• Importer la table COUNTRIES de la base de données NATIONS.MDB

• Supprimer le champ load set et supprimer la clé primaire du champ Country name de la table COUNTRIES

• Ajouter un champ IDcountry de type NuméroAuto dans la table COUNTRIES et le choisir comme clé primaire

• Changer, grâce à une requête, le nom du pays dans le champ Country de la table CUSTOMER par le numéro correspondant dans la table COUNTRIES. Il y a seulement 3 pays différents. Il faut repérer leur numéro est faire 3 requêtes de mise à jour.

• Changer le type de "text[15]" en "entier long" pour le champ Country de la table CUSTOMER

• Dans la table CUSTOMER, renommer le champ country en IDcountry

• Créer une relation entre les deux tables (en utilisant les champs IDcountry) à l'aide de l'option "Outils/Relations..."

• Créer une requête où interviennent les deux tables (CUSTOMER et COUNTRIES) et essayer d'effectuer quelques requêtes faisant intervenir les deux tables

Question facultative:

• Créer un formulaire basé sur une requête comprenant les deux tables, dans lequel le choix d'un client permet d'afficher automatiquement les caractéristiques du pays où il habite.

• Imaginer d'autres utilisations des ces deux tables

Exercice 8 (requêtes de création de table) Les requêtes "création de table" servent à créer une table à partir d'une ou plusieurs tables. A. A partir d'une table:

• Créer une nouvelle requête basée sur la table MEMBRES de la base de données EXMEMBRES1.MDB

• Choisir "requête création de table" et spécifier MembresUSA comme nom de la nouvelle table à créer.

• Placer sur la grille tous les champs de la table de départ

• Spécifier un critère permettant de choisir uniquement les personnes pour lesquelles le pays de travail est "Etats-Unis".

• Exécuter la requête, vérifier si la nouvelle table a été créée, et observer son contenu.

J-C Armici www.unvrai.com

Page 7: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

B. A partir de plusieurs tables:

• Créer une nouvelle requête basée sur les tables MEMBRES et PAIEMENTS de la base de données EXMEMBRES1.MDB

• Placer sur la grille les champs RéfMembre, prénom et nomfamille de la table Membres, ainsi que les champs MontantPaiement et DatePaiement de la table Paiements

• Choisir "requête création de table" et spécifier MembresPaiements comme nom de la nouvelle table à créer.

• Exécuter la requête, vérifier si la nouvelle table a été créée, et observer son contenu ainsi que sa structure. Que remarquez-vous à propos de sa structure ?

Exercice 9 (requêtes de suppression) Les requêtes "suppression" servent à supprimer des enregistrements dans une table. Dans la table MembresPaiements créée dans l'exercice précédent, nous voulons supprimer toutes les lignes dans lesquelles le montant payé est supérieur à 25 francs. Pour cela:

• Créer une nouvelle requête basée sur la table MembresPaiements

• Placer sur la grille tous les champs de la table

• Indiquer le bon critère pour la suppression des lignes désirée

• Choisir "requête suppression"

• Exécuter la requête, vérifier le nouveau contenu de la table MembresPaiements.

Exercice 10 (requêtes ajout) Les requêtes ajout servent à ajouter des enregistrements dans une table existante.

• Dans la base de données EXMEMBRES1.MDB dupliquer la table Membres à l'aide du "copier-coller" depuis la fenêtre base de données. Appeler MembresBis la nouvelle copie de la table Membres.

• Ouvrir la table MembresBis et supprimer toutes les lignes, sauf la première.

• Modifier les données (par exemple le prénom, le nom de famille…) de la ligne restante

• Créer une nouvelle requête basée sur la table MembresBis

• Placer tous les champs sur la grille, sauf RéfMembre

J-C Armici www.unvrai.com

Page 8: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

• Choisir "requête ajout" et indiquer comme nom de table cible Membres

• Exécuter la requête et vérifier le nouveau contenu de la table Membres

• Pourquoi n'a-t-on pas laissé aussi le champ RéfMembre dans la requête ?

Exercice 11 (requêtes avec une ou deux tables) Cet exercice concerne la base de données PRODUCT8.MDB qui contient deux tables PRODUCTS (contenant des articles informatiques) et VENDORS (contenant les vendeurs des articles).

• Prendre connaissance de la structure et du contenu des deux tables

• Répondre aux questions suivantes, en créant, pour chacune, une nouvelle requête:

• Combien y a-t-il d'articles de Borland vendus sur disquettes 3.5" ? Quel est le plus cher ?

• Quel est le prix de l'article le plus cher, et de quel vendeur est-il ?

• Quel vendeur possède-t-il le plus grand nombre d'articles dans la base de données ?

• En additionnant les prix de tous ses articles, quel montant obtient-on pour Hewlett-Packard?

• En moyenne, combien y a-t-il de produits par vendeur ?

• Combien y a-t-il de vendeurs ayant des produits en rapport avec le SCSI? Indication: lorsqu'on parle de prix, prendre toujours le prix de vente.

Exercice 12 (formulaire avec l'assistant) Cet exercice utilise la base de données EPREUVE.MDB. Le travail consiste à créer un nouveau formulaire basé sur la table STOCK

• En faisant appel à l'assistant formulaire d'Access

• En choisissant le mode "colonne simple" pour la disposition du formulaire

• En choisissant uniquement les champs: ISBN, Titre, Auteur et Prix de vente Sauvegarder ou renommer le formulaire sous le nom "Livres en stock". Utiliser éventuellement le formulaire pour tester son fonctionnement.

J-C Armici www.unvrai.com

Page 9: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 13 (formulaire sans l'assistant) Cet exercice utilise la base de données EPREUVE.MDB. Le travail consiste à créer un nouveau formulaire basé sur la table STOCK, comme pour l'exercice précédent

• Sans faire appel à l'assistant formulaire d'Access

• Utiliser les champs apparaissant normalement dans une petite fenêtre à l'écran et placer sur le formulaire uniquement les champs: ISBN, Titre, Auteur et Prix de vente

Sauvegarder le formulaire sous le nom "Livres en stock bis"

Exercice 14 (manipulation de formulaires) Cet exercice consiste à partir du formulaire créé dans l'exercice 13 et à explorer les différentes propriétés du formulaire, liées à son aspect, sa position, sa barre de titre ou son contenu. Modifier le formulaire pour le rendre semblable à celui présenté ci-dessous dans les moindres détails:

• Le texte des champs est en bleu, taille 10, gras

• La bordure n'est pas dimensionnable

• On ne peut que réduire la fenêtre, pas la fermer ou la maximiser

J-C Armici www.unvrai.com

Page 10: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 15 (formulaire basé sur une requête, boutons de navigation) Cet exercice utilise la base de données EPREUVE.MDB.

• Créer une nouvelle requête portant sur les deux tables STOCK et EDITEURS

• Placer les champs ISBN, Titre, Auteur, Prix de vente, date de parution et Nom éditeur

• Choisir uniquement les livres parus après le 1.1.1996 Sauvegarder la requête sous le nom "Nouveautés".

• Créez un formulaire, avec ou sans assistant, basé sur cette requête (et non sur une table).

• Améliorez l'aspect du formulaire pour qu'il ressemble à peu près à l'exemple de l'exercice 14.

• Dans la boîte à outils cliquer sur la baguette magique, puis placez un bouton au bas du formulaire. Ce bouton servira à se déplacer sur l'enregistrement suivant.

• Faire de même avec trois autres boutons: précédent, premier et dernier. Lorsque ces quatre boutons fonctionnent, supprimer les boutons de déplacement standard au bas du formulaire.

Exercice 16 (état basé sur une table) Cet exercice utilise la base de données EPREUVE.MDB.

• Ajouter des adresses fictives à quelques éditeurs de la table EDITEURS

• Créer un nouvel état (sans faire appel à l'assistant) basé sur la table EDITEURS de manière à ce qu'il ressemble le plus possible à celui dont la première page est présentée ci-dessous. Les points suivants doivent être respectés:

• La date figurant dans le titre (date du jour) doit être formatée comme sur l'exemple

• La première colonne (Code éditeur et Acronyme éditeur) doit être la concaténation des deux champs, séparés par un "/"

• Procéder de la même manière pour concaténer le Code postal et la Localité

• Chercher dans l'aide comment obtenir une numérotation automatique des pages comme sur l'exemple

• Au besoin, modifier les marges

• Utiliser le mode aperçu avant impression pour visualiser les résultats

J-C Armici www.unvrai.com

Page 11: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

J-C Armici www.unvrai.com

Page 12: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 17 (état basé sur une ……) Cet exercice utilise la base de données EPREUVE.MDB. Comment procéder pour obtenir un état comme celui de l'exercice précédent, mais avec uniquement les éditeurs suisses ?

Exercice 18 (état basé sur une requête avec regroupements et totaux) Cet exercice utilise la base de données EPREUVE.MDB: Le but est de créer un état comme celui dont les pages 1, 2 et 25 figurent ci-dessous. Dans un premier temps il faut créer une requête comportant les tables STOCK et EDITEURS, avec au moins les champs qui apparaissent sur l'état. Dans un second temps il faut construire un état basé sur cette requête. Il doit avoir les caractéristiques suivantes:

• Un en-tête et un pied de page, un en-tête et un pied d'état

• Un groupe "Acronyme éditeur", avec un en-tête et un pied de groupe

• Un titre contenant la date courante

• L'acronyme et le nom de l'éditeur doivent être accolés

• Pour chaque éditeur doit figurer:

• Le nombre total de livres

• La valeur totale des livres (quantité x prix de vente)

• Les pages doivent être numérotées

• Le pied d'état doit comporter les totaux globaux du nombre de livres et de la valeur

Question subsidiaire (plus difficile, car à "programmer"): On voudrait que pour les livres ayant un prix de vente de 0 Frs, la ligne apparaisse en italique et qu'elle soit précédée d'une petite flèche "->".

J-C Armici www.unvrai.com

Page 13: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

J-C Armici www.unvrai.com

Page 14: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

J-C Armici www.unvrai.com

Page 15: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

J-C Armici www.unvrai.com

Page 16: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 19 (structure des tables, clés, redondances) Voici les 3 tables, extraites d'un exemple du cours, impliquant les commandes et les articles:

COMMANDES ComNo EmpNo CliNo

1 1 22 4 13 1 34 2 45 3 26 2 47 2 2

COM/ART ComNo ArtNo NbArt

1 1 11 4 12 3 13 3 43 4 14 1 14 2 14 3 15 2 15 3 16 2 16 4 17 1 1

ARTICLES ArtNo ArtFournisseur ArtPrix ArtDesign

1 Harrison 235.00 Lit 2 Ford 350.00 Lampe 3 Ford 234.00 Chaise 4 Harrison 415.00 Table

Quels sont les avantages d'avoir placé le prix des articles dans la table ARTICLES plutôt que dans la table COM/ART ? Citez deux avantages ou plus.

Exercice 20 (relations, requête complexes) Prendre connaissance de la structure de la base de données F1.MDB décrivant des courses de Formule 1. construire une requête pour chacune des questions suivantes. Remarque: cette base de données contient les résultats de 1998 et 1999. Seuls les résultats

de 1999 sont réels, Pour 1998, ils sont purement imaginaires

J-C Armici www.unvrai.com

Page 17: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Question 1: Construire une requête permettant d'obtenir le classement des coureurs (par points) pour l'année 1999. Le résultat doit apparaître comme ci-dessous:

nomC Clasement Hakkinen 76Irvine 74Frentzen 54Coulthard 48Schumacher M. 44Schumacher R. 35Barrichello 21Herbert 15Fisichella 13Salo 10Hill 7Trulli 7Wurz 3Diniz 3Alesi 2Panis 2De La Rosa 1Gene 1

Question 2: Construire une requête permettant d'obtenir un classement analogue, mais pour les constructeurs (c'est-à-dire les écuries) et pour l'année 1998. Question 3: Construire une requête permettant de savoir combien de fois et sur quels circuits, Hakkinen a terminé dans les 3 premiers en 1999.

nomC noPl Annee nomCi Hakkinen 1 1999 Suzuka Hakkinen 3 1999 Malaisie Hakkinen 2 1999 Spa Hakkinen 1 1999 Hongrie Hakkinen 3 1999 Autriche Hakkinen 2 1999 Castelet Hakkinen 1 1999 Canada Hakkinen 1 1999 Espagne Hakkinen 3 1999 Monaco Hakkinen 1 1999 Brésil

Question 4: Construire une requête permettant de savoir quelle(s) écurie(s) basée(s) en Grande-Bretagne a(ont) utilisé des pneus Michelin.

J-C Armici www.unvrai.com

Page 18: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 21 (accès concurrent aux données, cours page 76) Afin de mettre en évidence les divers mécanismes de blocage proposés par Access:

• Ouvrir la base de données MENU.MDB

• Ouvrir le formulaire ARTICLES Ensuite, en fonction du système d'exploitation utilisé, exécuter une des deux actions suivantes:

• Lancer une seconde copie d'Access, ouvrir la base de données MENU.MDB et ouvrir le formulaire ARTICLES

• Ouvrir la table ARTICLES Essayer ensuite de modifier la désignation du même article, dans les formulaires des deux copies d'Access ouvertes, ou bien dans le formulaire ARTICLES et dans la tables ARTICLES. Répéter les modifications pour les trois valeurs possibles de verrouillage: Aucun, Général et Enregistrement modifié.

Exercice 22 (générateur de menu, cours page 79) En partant de la base de données MENU.MDB, construire un système de menu à l'aide du "Générateur de menu principal" d'Access (option Outils/Compléments/Gestionnaire de menu principal). Créer un menu disposant de trois options:

• Ouvrir le formulaire ARTICLES

• Ouvrir le formulaire CLIENTS

• Quitter Access Vérifier le fonctionnement du menu, et créer une macro nommée Autoexec dont le but est de lancer automatiquement le menu principal à l'ouverture de la base de données. Essayer également de placer une image sur le menu ou d'en modifier l'aspect.

Exercice 23 (Champ de type OLE, cours page 82) Sur le modèle des exemples du cours (page 82 et suivantes) concernant les objets OLE, ajouter un champ de type "Objet OLE" dans la table FOURNISSEURS et créer un formulaire basé sur cette table. Pour le premier fournisseur, placer un document Word existant dans le champ OLE. Pour le second fournisseur, créer un nouveau document de type Image Bitmap. Vérifier ensuite le comportement de ce champ (édition du contenu, insertion d'un nouvel objet, etc)

J-C Armici www.unvrai.com

Page 19: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 24 (fichiers Snapshot, cours page 87) Installer le programme permettant la visualisation des fichiers SNP. Pour l'installation exécuter le fichier SNPVW90.exe et accepter les options par défaut. Repérer ou se trouve le programme SNAPVIEW.EXE, le lancer et charger le fichier "ETAT 1.SNP".

Exercice 25 (Séparation programme/données, cours page 88) A partir de la base de données SEPARATION.MDB on voudrait obtenir une base de données DATA.MDB contenant uniquement les tables et une base de données PROGR.MDB contenant le reste des objets. Effectuer la séparation, le réattachement des tables et des tests de fonctionnement.

Exercice 26 (Champs indépendants, cours page 89) Ouvrir la base de données VOYAGE.MDB contenant le formulaire suivant:

Modifier le comportement du formulaire pour qu'à la sortie du champ contenant le prix journalier, les totaux qui suivent soient mis à jour. Indication: penser aux propriétés des champs

J-C Armici www.unvrai.com

Page 20: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 27 (Champs indépendants, programmation, cours page 89) Ouvrir la base de données VOYAGE.MDB contenant le même formulaire que pour l'exercice précédent. Modifier la logique qui gère le calcul du rabais pour que les enfants de 12 ans et moins bénéficient d'un rabais de 45% Indication avec le formulaire ou vert en mode création, le bouton de la barre d'outils

donne accès aux instructions de programmation

Exercice 28 (Formulaires, propriétés, événements) Ouvrir la base de données JAUNE.MDB contenant le formulaire ARTICLES:

Appuyer plusieurs fois sur la touche <Tab>. Le curseur passe d'un champ à l'autre et, arrivé au dernier champ, il passe au premier champ de l'enregistrement suivant. Grâce aux propriétés du formulaire trouver un moyen pour que le curseur passe du dernier au premier champ du même enregistrement. Ensuite trouver comment faire pour que le champ courant (contenant le curseur) ait un fond jaune. Le fond jaune doit suivre le curseur de champ en champ. Les autres champs que le champ courant restent avec le fond blanc.

Exercice 29 (Formulaires, source des données, SQL) Ouvrir la base de données FILTRE.MDB qui contient, entre autres, le formulaire RechercheNonFiltree (voir figure 109, page 92 du cours). A titre d'information, examiner le fonctionnement du formulaire RechercheNonFiltreeMacro et plus particulièrement du champ rAuteur. Le contenu de ce champ est basé sur la requête rRequete. Examiner également la requête correspondant à l'événement Après mise à jour du champ rAuteur. Créer un 3ème formulaire RechercheRequete, en apparence semblable aux deux précédents, mais respectant les points suivants:

J-C Armici www.unvrai.com

Page 21: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

• L'événement Après mise à jour du champ de recherche rAuteur doit provoquer le changement (par programme) de la propriété Source du formulaire. Cette propriété détermine d'où le formulaire tire ses données. Elle peut contenir le nom d'une table, d'une requête ou une instruction en langage SQL.

• Il est conseillé de construire une expression SQL intégrant le nom d'auteur à chercher. Celui-ci peut être extrait de la liste grâce à l'expression rAuteur.Column(0)

• Après avoir changé la source du formulaire, il faut déclencher la réactualisation des données sous-jacentes au formulaire à l'aide de l'instruction Me.Requery, où Me représente le formulaire.

Si tout fonctionne correctement, après le choix d'un auteur, on doit voir uniquement les livres de cet auteur.

Exercice 30 (Requêtes) Cet exercice se rapporte à la base de données VINS.MDB Question 1: Quel est le vin qui a remporté le plus de prix (awards), et combien en a-t-il remportés? Question 2: Quel est le raisin qui entre dans la composition du plus grand nombre de vins? Combien de vins? Citer un vin dans la composition duquel il entre. Question 3: Combien de vins ont-ils strictement plus de 13% d'alcool ? Question 4: Combien de vins contiennent-ils le mot riesling dans leur nom ? Question 5: Combien de vins contiennent-ils le mot refreshing dans leur commentaire et sont de couleur rouge ? Question 6: Créer un formulaire qui permette de visualiser chaque vin, l'un après l'autre, et qui indique leur nom, leur appellation, leur couleur et leur pourcentage d'alcool.

J-C Armici www.unvrai.com

Page 22: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Exercice 31 (Requêtes, formulaires, états) Cet exercice se rapporte à la base de données VINS.MDB Question 1: Sachant qu'un cépage (Grapes) peut intervenir dans plusieurs vins (Wines) et qu'un vin peut provenir de plusieurs cépages (il s'agit donc d'une relation de plusieurs à plusieurs), créer une requête permettant de visualiser la composition des vins, par ordre alphabétique du nom du vin, comme ci-dessous:

Question 2: On aimerait obtenir une liste alphabétique des vins et des mets les plus adaptés. Pour cela il faut faire une requête faisant intervenir les vins (Wines), les mets (Food category), et éventuellement une 3ème table. Le but est d'obtenir le résultat suivant:

J-C Armici www.unvrai.com

Page 23: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

Question 3: Créer un état pour chacune des deux questions précédentes.

Exercice 32 (tables, relations, formulaires) Trouver la structure de données (tables et relations entre elles) la plus appropriée, et qui ne contient pas de redondance, pour gérer les notes trimestrielles obtenues par les élèves d'une grande école. On voudrait, en fin de compte, pouvoir afficher le nom de l'élève, son prénom, la liste des branches qu'il a suivies, avec pour chacune les 3 notes obtenues ainsi que la moyenne. Construire un formulaire représentant cette situation. Remarque peut-être inutile, mais… Tous les élèves ne suivent pas les mêmes branches!!!!

J-C Armici www.unvrai.com

Page 24: Bases de données relationnelles - passeport.univ …passeport.univ-lille1.fr/site/initiatic/BASE_DE_DONNEES-_ACCESS/... · Exercice 3 (formulaire simple, basé sur une table, avec

J-C Armici www.unvrai.com

Exercice 33 (pilotage d'Excel par Acces, cours page 93) Ouvrir la base de données EXCEL.MDB qui se rapporte à la génération du tableau Excel de la page95 du cours. Modifier les instructions à exécuter afin d'ajouter une 5ème colonne dans Excel contenant la mention "à commander" uniquement pour les livres dont la quantité en stock est inférieure ou égale à 2.