Département Génie Informatique BD40 Ingénierie des systèmes d information TP 4 : Ms/Access : Listes déroulantes, Formulaires avancés Thème : Gestion commerciale Christian FISCHER Copyright Novembre 2005
Contexte de travail : La société GESCOM SA dispose de plusieurs postes de travail reliés par un réseau local de type Ethernet. Un micro-ordinateur puissant héberge Windows 2000 Server, jouant le rôle de serveur de fichiers. La société GESCOM SA dispose d une base de données Ms-Access, dont le fichier principal est nommé : gescom.mdb La structure du modèle relationnel,obtenu par rétroconception avec WinDesign est le suivant : Vous êtes chargé d améliorer ce premier développement réalisé avec le logiciel MS- Access version 2000. BD40 TP4 Page 2 / 15
Travail à réaliser A. Etude de la base de données Étape 1 : Etude de la base de données existante Copier la base de données GESCOM.MDB dans votre répertoire de travail personnel. Renommer la base de données GESCOM_APPLI.MDB Ouvrir la base de données GESCOM_APPLI.MDB Consulter les différentes tables et les relations existantes. Exécuter les requêtes de la base de données Ouvrir le formulaire Lancement Requêtes, puis tester l exécution des 2 requêtes à partir de la base de données existante. Consulter le code du module Utilitaires Étape 2 : Fractionnement de la base de données existante La base de données commerciale doit être accessible simultanément par plusieurs utilisateurs, le directeur informatique M. Fischer vous demande de stocker le fichier contenant les tables et les données sur le serveur de fichier dans un répertoire partagé. L application développée (les requêtes, formulaires, etc.) devra être placée sur le poste de travail de chaque utilisateur de l application. Pour mettre en place cette organisation, vous devez fractionner la base actuelle en deux fichiers : GESCOM_APPLI.MDB : qui contiendra l application actuelle (requêtes, formulaires et modules) + un attachement des tables sur le serveur de fichiers GESCOM_DAT.MDB : qui contiendra les tables et les données associées Créer une copie de sauvegarde de la base de données avant d effectuer la procédure. Ouvrir la base de données GESCOM_APPLI.MDB A l aide du menu Outils, sélectionner Utilitaires de base de données, puis Fractionner une base de données Dans la boîte de dialogue ci-dessous, cliquer sur le bouton «Fractionner la base de données». BD40 TP4 Page 3 / 15
Le nom par défaut de la base est : gescom_appli_princip.mdb Modifier ce nom en gescom_dat.mdb Modifier également le répertoire de stockage : par défaut «Mes documents». Placer les deux fichiers dans le même répertoire. Cliquer sur le bouton Fractionner. Vérifier dans la base gescom_appli.mdb le remplacement des tables par un attachement des tables sur la base gescom_dat.mdb A l aide du menu Outils, sélectionner Utilitaires de base de données, puis Gestionnaire de tables liées, consulter le lien vers le fichier gescom_dat.mdb Vérifier le fonctionnement de vos requêtes et du formulaire dans la base gescom_appli.mdb BD40 TP4 Page 4 / 15
B. Développement des listes déroulantes pour l intégrité référentielle Présentation du contexte La procédure consiste à envisager différents scénariis pour déterminer l approche la plus efficace dans un contexte de fractionnement de base de données. Dans quelle base faut-il modifier la structure des tables pour définir les listes déroulantes? A. Modification de la structure de la table liée 1. Utilisation du code SQL 2. Utilisation d une requête B. Modification de la structure de la table réelle 1. Utilisation du code SQL 2. Utilisation d une requête Conclusions à tirer Quelles préconisations devez-vous faire pour faciliter la réutilisation des listes déroulantes et dans quelle base de données faut-il stocker les listes déroulantes? Étape 1 : Gestion de la liste déroulante des catégories de client dans la base GESCOM_APPLI L objectif consiste à développer une liste déroulante permettant d afficher le code et le nom de la catégorie lors de la saisie du code catégorie d un client. 1. Création de la requête SQL sur la colonne Code catégorie de la table client Accéder à la structure de la table Clients en mode Création Sélectionner le champ CAT_CODE, puis dans la partie inférieure, afficher l onglet Liste de choix Sélectionner le contrôle : Liste déroulante Sélectionner pour la source : Table/requête Sélectionner pour le contenu : (Création d une requête SQL à créer à l aide de l éditeur de requêtes) : Requête SQL à créer : SELECT CATEGORIE.CAT_CODE, CATEGORIE.CAT_DESIGN FROM CATEGORIE ORDER BY CATEGORIE.CAT_DESIGN; Sélectionner le nombre de colonnes à afficher : 2 Sélectionner la largeur des colonnes pour obtenir la mise en forme désirée 2. Création d une requête LstCatégories sur la colonne Code catégorie de la table client La procédure est strictement la même, il suffit de sauvegarder la requête SQL dans l éditeur de requête sous le nom LstCatégories. BD40 TP4 Page 5 / 15
Étape 2 : Gestion de la liste déroulante des catégories de client dans la base GESCOM_DAT Supprimer la liste déroulante dans la base GESCOM_APPLI sur la colonne CAT_CODE dans client. Accéder à la base de données GESCOM_DAT et recréer la liste en mode SQL, puis en mode requête. Consulter la table attachée CLIENT et vérifier la récupération de la liste déroulante créée. Quelle procédure devez-vous suivre pour récupérer la liste déroulante définie dans la base GESCOM_DAT? Tester votre procédure et valider votre proposition. Étape 3 : Gestion de la liste déroulante des libellés de produits sur la saisie de la référence de produit dans la ligne de commande Pour la création de cette liste, utilisez une requête LstProduits et stocker la liste dans la base GESCOM_APPLI. Réaffectez dans la même base de données la liste des catégories à l aide de la requêtes LstCatégories BD40 TP4 Page 6 / 15
C. Développement de formulaires et de listes déroulantes Étape 1 : Création du formulaire FrmClients 1. Modification de la légende de tous les champs de la table des clients La propriété Légende sera reprise par l assistant de création de formulaire Exemple : modification de la légende du champ CLI_NUM 2. Création du formulaire FrmClients se présentant par défaut de la manière suivante : On doit constater l existence de la liste déroulante permettant d afficher le nom de la catégorie. Les légendes ont également été récupérées. Modification du formulaire selon les recommandations d interface du cours : Titre, Cadrage des légendes, raccourcis, boutons de navigations BD40 TP4 Page 7 / 15
3. Modification du formulaire FrmClients pour afficher le nom de la catégorie au lieu du code. Résultat à obtenir : Dupliquer votre formulaire par Copier/Coller et nommer la copie : FrmClientsLibCatégories Accéder au formulaire en mode Création et modifier le paramètre «Largeurs colonnes» de la liste déroulante de la manière suivante : Une largeur égale à 0 cm permet de masquer la colonne contenant le code. 4. Création d un nouveau formulaire permettant d afficher le code Catégorie à partir de la liste déroulante et d afficher le libellé de catégorie dans un champ de type texte. Résultat à obtenir : BD40 TP4 Page 8 / 15
5. Création manuelle du contrôle Désignation catégorie Duplication du formulaire FrmClients puis enregistrer le formulaire sous le nom FrmClientsFinal 1. Modification de la source du formulaire en remplaçant la table CLIENT par la requête SQL suivante : SELECT [CLIENT].[CLI_NUM], [CLIENT].[CAT_CODE], [CLIENT].[CLI_NOM], [CLIENT].[CLI_RUE], [CLIENT].[CLI_CP], [CLIENT].[CLI_VILLE], [CATEGORIE].[CAT_DESIGN] FROM ([CATEGORIE] INNER JOIN [CLIENT] ON [CATEGORIE].[CAT_CODE] =[CLIENT].[CAT_CODE]) La désignation de la catégorie (CAT_DESIGN) doit apparaître dans la liste des colonnes de la requête 2. Création du contrôle graphique de type zone de texte à partir de la source du formulaire (par glisser-déposer) 3. Mise en forme puis test du formulaire BD40 TP4 Page 9 / 15
Étape 2 : Création d une liste déroulante de recherche Ouvrir le formulaire FrmClients en mode création 1. Enregistrement de la requête SQL source du formulaire en requête et attribution du nom de la requête comme source du formulaire Dans le champ Source, accéder à l éditeur de requêtes en cliquant sur les 3 points. Enregistrer votre requête avec le nom indiqué ci-dessous. 2. Création de la liste de recherche A l aide de l assistant de création de liste déroulante, créer la liste de recherche contenant le numéro (caché), le nom et l adresse du client. Cette liste devra être triée par nom et adresse. Si l étape 1 a été réalisée correctement, la troisième option s affiche. Sélection la recherche dans le formulaire dans l écran ci-dessous. Suivez les différentes étapes de l assistant et vérifier le fonctionnement de la liste déroulante. BD40 TP4 Page 10 / 15
D. Développement de formulaires avancés Étape 1 : Création du sous-formulaire SFrmLigneCommandes 1. Vérification de la légende de tous les champs de la table Ligne_Commande et Produit 2. Création du formulaire en mode feuille de données avec les informations suivantes Modifier la source du formulaire de manière à trier les lignes par numéro de commande et référence de produit. Requête SQL à implanter SELECT [LIGNE_COMMANDE].[CDE_NUM], [LIGNE_COMMANDE].[PROD_REF], [LIGNE_COMMANDE].[PROD_QTE], [PRODUIT].[PROD_DES], [PRODUIT].[PROD_PRIX] FROM ([PRODUIT] INNER JOIN [LIGNE_COMMANDE] ON [PRODUIT].[PROD_REF] =[LIGNE_COMMANDE].[PROD_REF]) order by [LIGNE_COMMANDE].[CDE_NUM], [LIGNE_COMMANDE].[PROD_REF] 3. Test du formulaire et vérification du fonctionnement de la liste déroulante sur la Référence du produit BD40 TP4 Page 11 / 15
Étape 2 : Création du formulaire principal FrmCommandes 1. Création du formulaire d entête de commande avec les informations suivantes 2. Modification du formulaire par l ajout d un sous-formulaire à l aide de l assistant Sous-Formulaire Sélection du sous-formulaire BD40 TP4 Page 12 / 15
Choix des colonnes de synchronisation Mise en forme du formulaire et du sous-formulaire selon la présentation suivante : BD40 TP4 Page 13 / 15
Étape 3 : Création d un champ calculé Modifier le sous-formulaire SfrmCommandeProduit de la manière suivante : Ajouter un contrôle graphique de type zone de texte : TxtMontantLigne Ce contrôle contient la formule suivante : =[PROD_QTE]*[PROD_PRIX] Formater le prix et le montant de la ligne en Euros. BD40 TP4 Page 14 / 15
Étape 4 : Création de calculs de synthèse Sur le même formulaire, vous devez ajouter le total HT, le montant TVA = HT *0,196 et le montant TTC = HT * 1,196 Création d un champ TxtMontantnet dans le pied du formulaire en utilisant la formule : =somme([prod_qte]*[prod_prix]) Le pied de formulaire ne s affiche pas en mode feuille de données. Création de trois contrôles dans le formulaire principal. Chaque contrôle est basé sur le contrôle txtmontantnet du sous-formulaire. Étape 6 : Mise en place des champs calculés dans les tables Modifier la structure des tables concernées pour ajouter les champs calculés Ecrire la requête de mise à jour permettant de remplir les champs calculés. Modifier les requêtes et le formulaire de synthèse pour afficher et récupérer la valeur des champs calculés dans la base de données BD40 TP4 Page 15 / 15