Leçon 15 : Listes déroulantes basées sur d'autres tables

Temps nécessaire pour suivre cette leçon : Une petite demie heure

Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici

Aperçu de cette leçon

Dans cette leçon, nous allons voir qu'il n'est pas toujours possible de créer des listes déroulantes locales : Dans le cas d'un Titre (Monsieur, Madame, Mademoiselle), ou d'un état civil (Marié, divorcé, célibataire), c'est simple, car il n'y a que quelques choix possibles. Par contre, si vous avez un champs Pays, c'est plus délicat : En effet, la terre compte plus de 200 pays !

Sommaire

  1. Création de la table source pour la liste déroulante des pays
  2. Création d'une liste déroulante basée sur une table externe avec l'assistant
  3. Création automatique des relations (Déconseillée)
  4. Modification des données de la table source
  5. Résumé de la marche à suivre complète pour l'élaboration d'une liste déroulante basée sur une table externe
  6. Dysfonctionnements générés par l'utilisation de plusieurs tables en simultané
  7. La propriété de champ "Limité à liste"

Oui, alors justement, avec les pays, on ne peut pas faire une liste déroulante locale, comme on a fait dans la leçon précédente ? Pourquoi ?

Simplement, parce qu'il y en a trop ! Ce serait un véritable enfer de tout rentrer dans l'assistant liste de choix ! D'autant qur vous prenez le risque de placer 2 fois le même pays... Bref, ça ne va pas !

Et si j'ai seulement besoin de quelques pays : France, Suisse, et Italie par exemple ?

Alors là, on peut établir une liste locale. Mais ce n'est plus le sujet. Nous imaginons que vous avez besoin de tous les pays du monde, à savoir :

Açores (Portugal), Afghanistan, Afrique du Sud, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua et Barbuda, Arabie Saoudite, Argentine, Arménie, Aruba (Pays-Bas), Australie, Autriche, Azerbaïdjan, Bahamas (Iles), Bahreïn, Bangladesh, Barbade, Belgique, Bélize, Bénin, Bermudes (Iles des), Bhoutan, Biélorussie, Bolivie, Bosnie-Herzégovine, Botswana, Brésil, Brunéi, Bulgarie, Burkina Faso, Burundi, Caïmans (Iles), Cambodge, Cameroun, Canada, Cap-Vert (Iles du), Chili, Chine, Chypre, Colombie, Comores, Congo, Cook (ILES), Corée du Nord, Corée du Sud, Costa Rica, Côte d'Ivoire, Croatie, Cuba, Danemark, Djibouti, Dominique, Egypte, Emirats Arabes Unis, Equateur, Erythrée, Espagne, Estonie, Etats-Unis, Ethiopie, Falkland (Iles), Fidji (Iles), Finlande, France, Gabon, Gambie, Georgie, Ghana, Gibraltar, Grèce, Grenade, Groenland, Guadeloupe, Guam, Guatémala, Guinée, Guinée-Bissau, Guinée-Equatoriale, Guyana, Guyane, Haïti, Honduras, Hong Kong, Hongrie, Inde, Indonésie, Iran, Iraq, Irlande, Islande, Israël, Italie, Jamaïque, Japon, Jordanie, Kazakhstan, Kenya, Kirghizistan, Kiribati, Koweït, La Réunion (Île De), Laos, Les Seychelles, Lesotho, Lettonie, Liban, Liberia, Libye, Liechtenstein, Lituanie, Luxembourg, Macédoine, Madagascar, Malaisie, Malawi, Maldives (Iles), Mali, Malte, Mariannes du Nord (Îles Des), Maroc, Marshall (Iles), Martinique, Maurice (Ile), Mauritanie, Mexique, Micronésie, Moldavie (Rép. de), Monaco, Mongolie, Mozambique, Myanmar, Namibie, Nauru, Népal, Nicaragua, Niger, Nigéria, Niue, Norvège, Nouvelle-Calédonie, Nouvelle-Zélande, Oman, Ouganda, Ouzbékistan, Pakistan, Palau (Iles), Panama, Papouasie-Nouvelle-Guinée, Paraguay, Pays-Bas, Pérou, Philippines, Pologne, Polynésie française, Porto Rico, Portugal, Qatar, République Centrafricaine, République Dominicaine, République Tchèque, Roumanie, Royaume-Uni, Russie (Fédération de), Rwanda, Sahara Occidental, Saint-Christopher et Nevis, Sainte-Lucie, Saint-Marin, Saint-Vincent et les Grenadines, Salomon (Iles), Salvador (El), Samoa Occidental, Sao Tome et Principe, Sénégal, Sierra Leone, Singapour, Slovaquie, Slovénie, Somalie, Soudan, Sri Lanka, Suède, Suisse, Surinam, Swaziland, Syrie, Tadjikistan, Taïwan, Tanzanie, Tchad, Thaïlande, Togo, Tonga (Ile), Trinité-et-Tobago, Tunisie, Turkménistan, Turks et Caïcos (ILES), Turquie, Tuvalu (Iles), Ukraine, Uruguay, Vanuatu, Vatican (Cité) (Saint-Siège), Venezuela, Vierges Américaines (Iles), Vierges Britanniques (Iles), Viêt-Nam, Yémen, Yougoslavie, Zaïre, Zambie, Zimbabwe

Ah oui... Ca fait pas mal !

Oui. Donc, comme nous ne pouvons pas faire aisément une liste déroulante locale, ce que nous allons faire, c'est carrément une table des pays, qui va contenir la liste exhaustive de tous les pays du monde (cette liste ci dessus en fait). Et une fois que nous aurons conçu cette table supplémentaire, nous verrons comment l'assistant liste de choix va puiser dans cette nouvelle table.


Création de la table source pour la liste déroulante des pays

La première chose à faire est de créer cette fameuse nouvelle table. Vous savez comment on crée une nouvelle table, vous allez donc créer une nouvelle table que vous appellerez T_Pays, avec un seul champ : Pays : . Lancez cette table en mode saisie de données, et installez les pays suivants :

Vous avez mis 2 fois la France... C'est normal ???

Qu'est-ce que vous en pensez ?

Je dirais que non ! Si cette liste doit servir de base à la liste déroulante dans la table T_Client pour choisir le pays du client, je pense qu'il faudrait qu'il y ait un seul exemplaire de chaque pays.

Vous pensez bien. Donc ?

Donc... Il faut faire attention à ne pas mettre 2 fois le même pays, évidemment !

Oui, Ici c'est facile : Nous avons seulement 5 pays, c'était vraiment simple de voir qu'il y avait 2 fois la France... Mais s'il y avait déjà 80 ou 100 pays, comment pourriez-vous être certain de ne pas entrer 2 fois le même ?

La clé primaire ! Evidemment !

Voilà : Le champ pays devient la clé primaire de T_Pays !

On ne rajoute pas de NuméroAuto, qui serait une clé primaire , comme dans T_Client ?

Surtout pas ! Sinon, vous auriez ceci : . 2 fois la France avec 2 numéros différents... C'est idiot !

D'accord ! Pigé ! Donc c'est l'unique champ pays qui est aussi une clé primaire !

Absolument :

Apparté :

Il est possible d'avoir d'une part un champ défini en Clé primaire, comme par exemple IDPays, qui serait un NuméroAuto, et, également, le champ Pays qui, bien que n'étant pas défini en Clé primaire, exclut les doublons. Pour faire une telle chose, vous devez donc avoir un champ IDPays en NuméroAuto et en Clé primaire, et, dans les options du champ Pays, tout en dessous, dans les propriétés, vous avez une propriété Indexé que vous devrez mettre à "Oui - Sans doublons": . Quel est l'intérêt de faire ça ? C'est une question de gain de place disque. Admettons que vous ayez cent mille clients, et que 85'000 d'entre eux proviennent du pays "Etats-Unis". ça fait que dans la table T_Client, vous aurez 85'000 fois "Etats-Unis", soit 85'000 fois 10 lettres, soit plus de 8 millions de lettres (8 millions d'octets). Si l'IDPays est un numéroAuto, et que Etats-Unis correspond par exemple au pays Numéro 5, il n'y a plus que le Numéro qui sera stocké dans T_Client, soit le numéro 5 en l'occurrence : Soit plus qu'un seul caractère : "5" !, ce qui fait que ce n'est plus de 8 millions de caractères qu'on a besoin, mais plus que 85'000... Voyez la différence ! (Les chiffres que je vous livre ne sont pas vraiment exact, mais l'esprit est bien représenté). Donc, la Clé primaire serait IDPays, ce qui empêche d'avoir 2 fois le même numéro (de toute façon le numéroAuto l'aurait empêché), et le fait de définir Pays à Indexé : Oui-Sans doublon évite d'avoir un 2ème pays identique. Toutefois, cet ajout de champ pour des questions de place alourdit et complexifie la structure de votre base de données. Aussi, nous allons rester avec la version : Un seul champ Pays, en Clé primaire.

Ah ! OK. Hem... Bon, comme j'avais mis 2 fois la France, évidemment, maintenant, il ne me laisse plus mettre une clé primaire. Laissez moi 5 minutes pour régler le problème...

Prenez votre temps... N'oubliez donc pas qu'il vous faut d'abord retirer la clé, lancer la table en mode saisie de données, supprimer la 2ème France, revenir en mode création, et remettre la clé. Si vous avez un peu de peine, refaites la leçon sur la clé primaire (Leçon 13).

J'y suis ! Je rentre tous les pays du monde dans T_Pays ?

Pas comme ça, non. Sinon, vous allez en avoir pour 3 heures. Mettez simplement :

- Suisse
- France
- Belgique
- Italie

Maintenant, c'est fini. Quittez la table T_Pays

Retournez dans T_Client en mode Création.

Ajoutez un champ "PaysOrigine" :

A la place de texte, choisissez l'assistant liste de choix


Création d'une liste déroulante basée sur une table externe avec l'assistant

C'est MAINTENANT que ça change par rapport aux listes déroulantes locales vues dans la leçon précédente

Dans cette boîte de dialogue, choissez la première option : . Cliquez sur Suivant.

Dans cette boîte de dialogue, vous allez justement choisir la table qui contient tous les pays : C'est facile, c'est la seule table (à part T-Client). Cliquez dessus : , et cliquez sur Suivant.

Dans cette boîte, vous devez cliquer sur la petite flèche pour déplacer le champ pays de gauche à droite .

Ca sert à quoi ça ?

C'est dans le cas ou la table T_Pays avait contenu plusieurs champs : Par exemple, en plus du champ Pays, nous aurions pu avoir d'autres informations comme : NomDuChefDEtat, ProduitNationalBrut, Superficie, NombreHabitant, etc. C'est à dire des champs précisant des données sur chaque pays. Dans ce cas, pour notre liste déroulante, nous aurions seulement choisi le nom du pays, les autres champs ne nous auraient pas intéressés

Vous cliquez donc ensuite sur Suivant, et vous avez sous les yeux la représentation de votre table T_Pays : . La seule chose que vous puissiez faire ici n'est pas très importante, c'est simplement d'élargir ou rétrécir la liste en largeur, comme une colonne dans Excel :

Cliquez sur Suivant, vous arrivez enfin à la dernière étape :

Cliquez sur Terminer.


Création automatique des relations (Déconseillée)

Cette boîte de dialogue apparaît. . Répondez TOUJOURS TOUJOURS TOUJOURS TOUJOURS TOUJOURS TOUJOURS "NON" à cette question !

Pourquoi ?

Parce que si vous répondez Oui, Access va établir une relation entre la table T_Client et T_Pays de lui-même, et je ne veux pas qu'il le fasse, parce que dans la leçon 16, nous allons étudier les relations, et il est mille fois préférable de les constituer soi-même que de laisser Access nous prendre par la main, et faire le travail à notre place!

Nous n'avons pas encore vu ça, mais en plus, si vous aviez déjà créé une relation entre T_Client et T_Pays, Access vous l'aurait détruite pour en ajouter une de son cru si vous aviez répondu Oui. Pour l'instant c'est un peu du chinois, mais on aura l'occasion de longuement y revenir.

Bien. Pour voir ce que ça donne, lancez la table en mode Saisie de données, et essayez de choisir l'Italie pour le premier client (Clunton): . Et voilà. Ca marche !

ATTENTION : Quand vous avez dans une table (Par exemple T_Client) un champ qui n'a pas le même nom que le champ dans une autre table (Je m'explique : Par exemple, vous avez PaysOrigine dans T_Client, mais il va puiser dans T_Pays, qui elle, contient un champ Pays - Vous voyez : Pays lié à PaysOrigine), Access va constater ceci, est va insidieusement lors de la création de la liste déroulante par l'assistant, remplacer le champ PaysOrigine par Pays dans votre table T_Client, pour que les champs des 2 tables aient le même nom. C'est un petit magouilleur, cet Access ! Parce que nous, on ne veut pas changer le nom de notre champ, même s'il est lié à une autre table. N'hésitez donc pas à bien vérifier qu'il ne vous change donc pas les libellés de vos champs, et s'il le fait, contrez-le en RENOMMANT encore le champ avec le libellé que VOUS voulez ! Non mais ! Il ne va pas non plus faire trop la loi, celui-là !!! Soyez attentif parce qu'il fait sa petite affaire très discrètement !!!


Modification des données de la table source

Le premier client, c'est Clunton. Il vient des USA, pas d'Italie...

Exactement. C'est ici que se montre la puissance de la liste déroulante basée sur une autre table : Voici comment ajouter USA à la liste :

  1. Fermez T_Client
  2. Ouvrez T_Pays
  3. Ajoutez USA
  4. Fermez la table T_Pays
  5. Rouvrez la table T_Client en mode saisie de données
  6. Et voilà : Vous pouvez choisir maintenant USA pour Clunton :

C'est puissant ! Et donc, si on supprime un pays de T_Pays, on ne le verra plus apparaître dans la liste Pays de T_Client ?

Oui, bien entendu. Il sera ensuite aussi absent de la liste déroulante créée dans T_Client. Mais ça ne supprimera pas USA du client Clunton, il faut le savoir.


Résumé de la marche à suivre complète pour l'élaboration d'une liste déroulante basée sur une table externe

On peut résumer la marche à suivre ?

Oui. Et pour bien comprendre, nous allons faire le résumé sous forme d'exercice. Nous allons dire que chaque client habite actuellement dans une ville, et nous allons choisir la ville dans laquelle il habite dans une liste déroulante qui va se baser sur une nouvelle table : T_Ville

  1. Quitter T_Client
  2. Créer une nouvelle table
  3. Y installer un champ Ville
  4. NE PAS choisir liste de choix, mais laisser en texte (Erreur fréquente !)
  5. Définir ce champ Ville en clé primaire
  6. Lancer cette table en mode saisie de données
  7. Lors de l'enregistrement de la table, lui donner son nom : T_Ville
  8. Ecrire les villes suivantes :
    Genève
    Paris
    New-York
    Athènes
  9. Fermer cette table T_Ville
  10. Rouvrir la table T_Client
  11. Insérer un champ Ville juste en dessous du prénom
  12. Choisir "Assistant liste de choix"
  13. Choisir la première option "Je veux que la liste de choix recherche les valeurs dans une table ou requête"
  14. Cliquer sur Suivant
  15. Cliquer sur T_Ville
  16. Cliquer sur Suivant
  17. Clqiuer sur la petite flèche > pour envoyer le champ ville de gauche à droite
  18. Cliquer sur Suivant
  19. Cliquer sur Suivant
  20. Cliquer sur Terminer
  21. A la question "La table doit être enregistrée afin que les relations puissent être créees", répondez NON !

C'est terminé. Lancez la table T_Client en mode saisie de données, et voilà : Vous pouvez dès à présent choisir la ville pour chaque client.

Impeccable ! Ca marche.


Dysfonctionnements générés par l'utilisation de plusieurs tables en simultané

Oui. Mais ATTENTION : Lorsque vous changez quelque chose dans la table T_Ville, il est nécessaire que la table T_Client soit fermée. Je m'explique : Certains utilisateurs connaissent bien Windows, et savent très bien qu'il est possible d'ouvrir 2 tables à la fois :

MAIS... Si vous faites comme ça (que vous travaillez sur 2 tables en même temps), vous allez avoir des surprises : Ne faites le petit exercice suivant que si vous êtes un de ces utilisateurs qui aimez travailler avec plusieurs fenêtres en même temps :

  1. Ouvrez la table T_Ville et T_Client : Mettez les côte à côte comme dans l'exemple ci-dessus
  2. Ajoutez une ville dans la table T_Ville : San Fransisco
  3. Fermez T_Ville
  4. Allez dans la table des clients, et essayez de choisir San Fransisco pour un des clients (n'importe qui)
    Oh Surprise ! San Fransisco ne se trouve PAS dans la liste !
  5. Fermez la table T_Client, et rouvrez-là
  6. Essayez à nouveau de choisir San Fransico : Ca marche cette fois !

Ca marche parce que c'est seulement lors de l'ouvertiure de la table T_Client que la liste se remet à jour !

Nous allons maintenant observer la différence au niveau de la table T_Client. Elle contient donc 2 listes déroulantes locales : Titre et EtatCivil, et 2 listes déroulantes basées sur une autre table : Pays et Ville. Comparons les options de Titre et Pays : -

Vous constatez que dans "Origine Source", Titre contient "Liste Valeurs", et dans Pays "Table/Requête". C'est la première différence.

Ensuite, dans "Contenu", Titre est égal à : "Madame";"Mademoiselle";"Monsieur";"Maître", tandis que Pays vaut SELECT [T_Pays].[Pays] FROM T_Pays;

On peut facilement comprendre cette ligne écrite en langage dit "SQL" (Langage de requête structuré - Structured Query Language) : On sélectionne le champ [Pays] de la table [T_Pays]. Même si vous ne la comprenez pas parfaitement, vous voyez l'essence même de cette commande : C'est un appel Dynamique de T_Pays, et pas une simple liste toute bête Madame,Mademoiselle, Monsieur. Nous reviendrons ultérieurement sur ce langage SQL.

Mais en fait, ma table T_Pays n'est pas du tout complète... Je dois la remplir à la main ?

Non. Je tiens à votre disposition (Parce que vous m'êtes sympathique) la liste complète des pays, mais comme il s'agit d'un autre sujet (importation de données en provenance d'autres bases de données que nous aborderons à la leçon 18), je remet cette question à plus tard.

En faisant quelques tests, j'ai constaté que je pouvais, dans T_client, préciser que des clients viennent de "YoupiLand" par exemple (c'est à dire que je n'ai pas choisi dans léa liste déroulante, mais j'ai directement écrit ça : ). C'est normal


La propriété de champ "Limité à liste"

Oui. C'est parce que vous n'avez pas limité à liste : Oui :

Je me souviens ! Exactement comme dans les listes déroulantes locales, en fait ?

Oui, ça ne change pas. Ce n'est pas parce que votre liste de choix va chercher les valeurs dans une autre table que les règles changent.

Mais alors, je pense à ceci : Si j'avais déjà entré pas mal de clients, et que je leur avait attribué un pays, jusqu'au moment ou je pense à "Limiter la liste : Oui", il y a peut-être plein d'erreurs orthographiques dans la sasie des noms de pays !

Oui. C'est pourquoi il est nécessaire de Limiter à liste : Oui. Mais en fait, il y a même avec Access la possibilité de "lier très fortement" T_Client et T_Pays de façon à être absolument certain que tous les pays qui sont saisis dans T_Client soient bel et bien répertoriés dans T_Pays. Ce sont les relations. Nous y reviendrons dans la leçon suivante.

Bon... Hem... On peut résumer ?

La liste déroulante rend de précieux services : C'est une des pierres angulaires d'Access. Il est INDISPENSABLE de bien les maîtriser car c'est vraiment la clé de voûte d'une base de données.
Elle permet de chosir dans une liste une valeur plutôt que de la saisir manuellement. Il y a deux manières de faire une liste déroulante : Locale, et basée sur une autre table. La liste déroulante locale est destinée à proposer quelques choix (disons environ au maximum une dizaine, comme par exemple l'état civil ou le titre), tandis que la liste déroulante basée sur une autre table est plus difficile à mettre en oeuvre, mais est beaucoup plus puissante : Elle est utilisée quand elle propose beaucoup de choix (La ville ou le pays dans notre exemple).

Avez-vous bien compris ?

  1. J'ai une table T_VoitureOccasion qui contient plusieurs champs, dont un champ Couleur qui peut contenir environ 7 ou 8 couleurs différentes. Comment vais-je définir ce champ ?
    a. Je vais créer une liste déroulante locale ***
    b. Je vais créer une liste déroulante basée sur une table T_Couleur
    c. Je ne crée pas de liste déroulante

  2. Je suis médecin, et j'ai une table T_Patient. Dedans, j'ai plusieurs champs, dont un champ Maladie, qui contient la maladie principale du patient. Comment vais-je définir ce champ ?
    a. Je vais créer une liste déroulante locale
    b. Je vais créer une liste déroulante basée sur une table T_Maladie ***(il y a nettement plus de maladies que de couleurs dans la question précédente)
    c. Je ne crée pas de liste déroulante

  3. Je suis directeur d'une agence matrimoniale, et je désire placer les deux principales qualités de chaque candidat. Par exemple : Jean Muller est Attentif ET Romantique. Jules Martin est Romantique ET Intelligent. Comment vais-je procéder ? (en sachant que la liste des qualités possible est limité à 5 : Attentif, Romantique, Intelligent, Beau et Riche)
    a. Je crée un champ Qualite, en liste déroulante, basé sur une table T_Qualite (un champ suffit)
    b. Je crée un champ Qualite, en liste déroulante locale (un champ suffit)
    c. Je crée un champ Qualite1, en liste déroulante locale, et un champ Qualite2, aussi en liste déroulante locale ***
    d. Je crée un champ Qualite1, en liste déroulante basé sur une table T_Qualite, et un champ Qualite2, en liste deroulante basé sur T_Qualite également

  4. J'ai un champ NombreEnfant dans une table T_Client. Comment vais-je le définir ?
    a. Je ne crée pas de liste déroulante *** (en effet, quel intérêt d'une liste déroulante pour stocker un simple chiffre ?)
    b. Je crée une liste déroulante locale avec les valeurs Un, Deux, Trois et Quatre
    c. je crée une liste déroulante locale avec les valeurs 1,2,3 et 4

  5. Je suis Diététicien(ne), et j'ai créé une table T_Patient. J'ai besoin de connaître le nom du médecin généraliste de chacun de mes patients. Comment vais-je procéder ? (plusieurs réponses possible)
    a. Je crée une liste déroulante locale avec le nom de tous les médecins généralistes de la région *** (si le village du diétécicien est composé de 3 ou 4 médecins seulement)
    b. Je crée une liste déroulante basée sur une table T_MedecinGeneraliste qui elle même va contenir les noms des médecins généralistes de la région ***
    c. Je ne crée pas de liste déroulante *** (toutes les réponses sont correctes...eh oui : ça dépend du nombre de médecins. A Paris par exemple, il y en a tellement, qu'est-ce vraiment la peine de les répertorier dans une liste)

  6. J'ai un champ Titre qui est une liste déroulante basée sur une table T_Titre, et qui contient : Monsieur, Madame et mademoiselle, au lieu d'avoir une liste déroulante locale qui aurait suffi. C'est :
    a. Carrément dangereux
    b. Une bonne idée
    c. Simplement inutile ***
    d. Obligatoire

Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses.

Exercice

Je suis agent immobilier, et je loue des résidences de vacances.
L'exercice consiste à créer une base de données qui s'appellera Résidence.MDB. Ce sera une base de données qui contiendra une table T_Residence, qui va contenir les renseignements suivants :

  • NomResidence (Seul champ à ne pas être une liste déroulante)
  • StyleSol (Liste déroulante : Parquet, Moquette, Linoléum)
  • Etage : (Liste déroulante : Rez-de-chaussée, premier, deuxième, troisième, attique)
  • Ville : (Liste déroulante : Cannes, Nice, St-Tropez, Marseille)
  • Orientation : (Liste déroulante : Nord, Sud, Est, Ouest)
  • EpoqueDeConstruction : (Liste déroulante : 1960, 1970, 1980, 1990)
  • CouleurPlafond : (Liste déroulante : Blanc, Blanc cassé, jaune, marron)
  • CouleurMur : (Liste déroulante avec les mêmes valeurs que pour le plafond)

Comme vous le constatez, il devrait s'agir pour la plupart de listes déroulantes locales, car le nombre de choix est vraiment restreint. Mais, pour l'exercice, je vous demanderai de bien vouloir ne créer QUE des listes déroulantes basées sur d'autres tables !

voici quelques données-exemples pour vous aider :

  1. MON BEAU SOLEIL : Sol en lino, 1er étatge, Nice, orienté au Sud, consruit dans les années 70, plafond jaune, murs blancs
  2. DOLCE VITA : Sol en linoléum, Rez, à Marseille, Ouest, construit dans les années 90, Plafond et murs : Blanc cassé
  3. DOUCE RETRAITE : Moquette, Attique, Cannes, construit en 1971, orienté au sud-est, On ne connait pas la couleur des murs, mais le plafond est blanc

Téléchargez la solution de l'exercice ici

Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.

Avez-vous une question technique concernant cette leçon ? Cliquez ici !
Une remarque sur cette leçon ? Un problème ? Une erreur ? une ambiguité ? Soyez gentil de m'en informer