Cours Formulaire Access
Formulaire Access
1. Introduction
Si vous avez rentré des enregistrements dans une table de la base de donnée Access, vous avez remarqué l'aspect tableur de type Excel des enregistrements.
Les formulaires Access vont nous permettre de faire un affichage personnalisé de nos tables et requêtes: mise en forme des champs, mises en formes de quelques données, Le formulaire est le point central d'Access pour entrer ou afficher vos enregistrements. Un formulaire peut être créé à partir d'une table ou d'une requête. Dans un chapitre ultérieur, nous verrons les propriétés avancées des formulaires Access.
Rappel
Une base de donnée permet de classer, trier et filtrer de larges quantités d'informations. Chaque logiciel de gestion (comptabilité, gestion commerciale, stock, ) est d'ailleurs une base de donnée. Vous pouvez également le faire avec un tableur de type Excel. C'est en partie vrai. Si vous êtes un utilisateur avancé du tableur, certaines fonctions peuvent sembler similaires. Néanmoins, les possibilités de Microsoft Access sont largement supérieures dans ces domaines, surtout si vous utilisez de grandes quantités de données.
Base de donnée Access?
Maintenant que les explications préliminaires du cours Access sont acquises, intéressons nous à la base de donnée de Microsoft. Les onglets d'Access se subdivisent en 7 parties. Passons en revue les principaux.
• Débutons par la table: elle reprend les informations brutes (non traitées): les enregistrements et les champs.
• Une requête permet diverses mises en forme des tables: le tri, filtre, afficher ou nom des données, …
• Un Formulaire permet d'afficher les tables et les requêtes d'une manière agréable.
• Un état permet d'imprimer des données de tables et de requêtes avec si nécessaire des regroupements et des calculs. C'est bien là la grosse différence entre Excel et Access, les calculs ne se font pas par de simples formules, mais bien par ces états d'impression. L'avantage, c'est qu'une fois que l'état est fait, tout se fait automatiquement. Le défaut, c'est de … faire ces états. Néanmoins, pour de nombreux enregistrements (plus de 500), Excel est vite dépassé, ce qui n'est pas le cas d'Access.
• Les macros permettent d'exécuter des fonctions à partir de requêtes ou de formulaires. Nous ne rentrerons pas dans la programmation d'ACCESS dans cette formation mais utiliserons ces fonctions pour créer un formulaire d'entrée.
Page: permet de créer des pages Internet pour accéder à la base de données
2. Un formulaire de base.
Cliquons sur le bouton "Formulaires" et créons un formulaire à l'aide de l'assistant, le mode création sera vu plus tard. Sélectionnons Requête: contenu par classement créé au chapitre 3.
Faisons passer tous les champs dans la partie droite. Ceci nous permettra de les afficher. Sélectionnons par exemple comme type de formulaire "Justifié" "SUIVANT >". Sélectionnons un style au hasard. Ceci ne fait que de sélectionner des couleurs de fond, ce que nous pourrons modifier plus tard.
Ouvrons le formulaire pour inspecter notre travail. Si vous n'avez pas encore rentré de CD - DVD dans la base de donnée (table ou requête), aucun enregistrement ne sera affiché.
Pouvons nous rentrer des données ici dans contenu, Oui! Et même plus puisque les données rentrées dans ce formulaire serons rentrés dans la base de donnée contenu et dans la requête (qui dépend de la table) contenu par classement.
Rentrons par exemple les données suivantes.
Le résultat semble peu expressif. Ceci est lié au faible nombre de champs utilisés, mais nous améliorerons ceci plus tard. Pour rappel, les boutons en bas à gauche servent à se déplacer et à rentrer des données.
Nous allons modifier notre requête pour trier suivant le classement, mais pour qu'en cas de même classement (le même CD), les pistes apparaissent en ordre croissant.
La Requête sélectionnée, cliquons sur le bouton modifier. et rajoutons tri croissant pour le numéro de piste. Comme cette colonne est après "Classement", ACCESS fera le tri après celui sur classement. Ceci va nous permettre de rentrer nos CD dans n'importe quel ordre. Remarque, dans les bases de données ACCESS, les tris ne se font qu'après la fermeture de la requête ou du formulaire associé, une lacune par rapport à d'autres bases de données nettement plus anciennes comme DBASE.
3. Formulaires Access personnalisés.
Dans le cas ci-dessus, nous avons utilisé l'assistant pour créer un formulaire.
Cette fois, utilisons le mode création.
La présentation devient nettement moins sympathique mais cette méthode va nous permettre de réellement créé un formulaire selon nos besoins. L'affichage est tout à fait brut, seule la barre d'outils va nous permettre de créer des textes, champs, boutons,
A notre stade, analyser toutes les fonctionnalités serais trop complexe mais voyons d'une manière générale ces fonctions:
• Sélection: permet de sélectionner le contenu d'une zone.
• Assistant contrôle permet de travailler ou non avec des contrôles, c'est une aide précieuse pour la création d'un formulaire.
• Texte (étiquette): permet de taper un texte (titre par exemple).
• Champ: permet d'insérer un champ provenant d'une table ou d'une requête
• Bouton bascule, bouton à cocher et Case à cocher ont la même fonction, seule la présentation change. Ces boutons sont à utiliser dans des champs de type "Oui/non"
• Zone de liste modifiable permet de sélectionner une réponse dans une liste ou une autre réponse
• Zone de liste ne permet de choisir que les réponses dans la liste
• Bouton de commande: permet de créer des boutons de fonctions, fermer la fenêtre, quitter l'application, . Cette fonction sera utilise pour faire un formulaire de "démarrage" de la base de donnée
• Image: permet d'insérer une image fixe, un logo par exemple
• Cadre d'objet indépendant permet d'insérer un objet venant d'une autre application indépendamment du contenu
• Cadre d'objet dépendant permet d'insérer un objet d'une autre application mais dépendant de l'enregistrement
• Saut de page, permet de couper le formulaire en pages
• Contrôle d'onglet: permet d'insérer des onglets pour afficher plus d'informations
• Sous-Formulaire: serons vus avec les bases de données relationnelles
• Ligne: insérer une ligne dans le formulaire
• Rectangle: insère un rectangle dans votre formulaire
• Autres contrôles: une liste de contrôle que nous n'aborderons pas. Ces notions seront identiques pour les états Access
3.1. Sélections de la table ou requête.
Le premier problème de ce mode de création, c'est "pas de table / requête" sélectionnée.
Dans le menu affichage, sélectionnez propriété. La fenêtre suivant va donner les propriétés complète de ce formulaire. Dans l'onglet "Toutes", dans la ligne Source, vous pouvez sélectionner la table ou la requête désirée. Remarquez que vous ne pouvez sélectionner qu'une seule table ou requête. Sélectionnons notre table Album par exemple. Une fenêtre va maintenant nous permettre de faire glisser les champs vers le formulaire.
3.2. Insérer un titre
Pour insérer un titre à notre formulaire, utilisons la boîte à outils et cliquons sur le bouton TEXTE. A l'aide le la souris, créons une zone et tapons notre texte, par exemple album
La zone sélectionnée, utilisons la touche droite de la souris et sélectionnons propriétés. Ceci va permettre de modifier la couleur du texte, fond, Vous pouvez également utiliser la barre d'outils au-dessus.
3.3. Insérer une image ou un logo dans notre formulaire.
Dans la barre d'outils, sélectionnez le bouton image:
Il ne reste plus qu'à donner l'emplacement de l'image pour insérer l'objet. Vous devrez probablement utiliser le bouton de sélection pour déplacer les textes et champs. Vous pouvez compléter ce formulaire Access en insérant une ligne, un rectangle, Nous reviendrons à ces formulaires personnalisés.
II- Formulaire avancé Access
Dans un précédant chapitre, nous avons vu comment créer un formulaire Access de base ou même de le personnaliser un peu. Cette partie de la formation va utiliser quelques propriétés avancées plus complexes et nous permettre d'insérer d'autres objets.
Commençons par créer une nouvelle base de donnée de type fichier d'adresse (éventuellement à l'aide de l'assistant de Microsoft) comportant une table reprenant minimum les champs suivants: Titre, nom, prénom, adresse, code-postal, ville et téléphone. Enregistrez cette base de donnée sous le nom Adresse par exemple.
Créer un simple formulaire reprenant cette table à l'aide de l'assistant. Reprenez ce formulaire en mode modification. Il devrait se présenter comme ci-dessous:
A ce stade, rien de bien complexe. Pour le personnaliser, nous allons utiliser une large partie de la barre d'outils de création:
Certaines parties cette barre d'outils Access nous sont déjà familières.
• Sélection: permet de sélectionner le contenu d'une zone.
• Assistant contrôle permet de travailler ou non avec des contrôles, c'est une aide précieuse pour la création 'un formulaire.
• Texte (étiquette) et champ ont déjà été utilisé dans le chapitre sur les formulaires et les champs calculés.
• Bouton bascule, bouton à cocher et Case à cocher ont la même fonction, seule la présentation change. Ces boutons sont à utiliser dans des champs de type "Oui/non"
Groupe d'options
• Zone de liste modifiable et zone de liste ont été utilisés lors de la création de listes
• Bouton de commande: l'utilisation des boutons dans les formulaires a été vu dans le chapitre macro de base
• Image: permet d'insérer une image fixe, un logo par exemple
• Cadre d'objet indépendant permet d'insérer un objet venant d'une autre application indépendamment du contenu
• Cadre d'objet dépendant permet d'insérer un objet d'une autre application mais dépendant de l'enregistrement
• Saut de page, permet de couper le formulaire ou l'état en pages
• Contrôle d'onglet: permet d'insérer des onglets sur un formulaire pour afficher plus d'informations
• Sous-Formulaire a été utilisé dans les bases de données relationnelles
• Ligne et rectangle ont déjà été utilisé dans le chapitre sur la création d'un formulaire de base
• Autres contrôles: une liste de contrôle que nous n'aborderons pas.
1. Première mise en forme de notre formulaire
Pour débuter, commençons par modifier notre formulaire en insérant un logo (bouton image), un titre pour notre formulaire (bouton titre), un rectangle autour du nom et une ligne de séparation. Comme ces possibilités ont déjà été vues dans les formulaires de bases, je ne les vois pas en détail. Le formulaire modifié devrait ressembler à ceci:
2. Groupe d'options
Un groupe d'options permet de choisir une valeur dans une liste prédéterminée. Son utilisation est donc similaire à celle d'une zone de liste ou d'une zone de liste modifiable. La seule réelle différence vient de l'affichage. Dans un groupe d'option, toutes les valeurs possibles sont affichées. Dans une zone de liste, vous devez cliquez sur la case de droite pour les afficher.
Comme exercice, nous allons créer une option qui va déterminer les titres possibles. Si ce n'est pas fait, cliquez sur le bouton Assistant contrôle dans la boîte d'outils pour utiliser l'assistant. Cliquez ensuite sur le bouton "groupe d'options".
Nous allons commencer par remplir les différentes possibilités.
L'étape suivante nous permet de donner une valeur par défaut à notre groupe d'option.
La question suivante va nous permettre de déterminer le numéro de chaque possibilité (notre exemple n'est donc pas très utile puisqu'il ne permet pas d'enregistrer directement le texte dans le champ mais bien un numéro). La solution passera par une macro par exemple pour le transfert.
Pour la suite de notre exercice, nous allons insérer la valeur dans le champ titre.
La dernière étape va nous permettre de personnaliser notre groupe d'options: le type de contrôle pour l'aspect des boutons, le style pour les encadrements.
3. Insertion d'un nouveau champ dans notre formulaire.
Pour la suite de la personnalisation de notre formulaire, nous allons insérer dans notre table un nouveau champ "Professionnel" de type Oui ou Non.
Après avoir enregistré la table, reprenons notre formulaire en mode modification.
Nous souhaitons insérer ce champ dans notre formulaire existant.
Nous avons 2 possibilités, soit par le menu affichage et la commande Liste des champs en déplaçant la ligne professionnel vers notre formulaire (Access crée automatiquement une case à cocher), soit en utilisant les propriétés avancées.
Insérez un bouton bascule sur votre formulaire.
Pour définir les propriétés de ce bouton, sélectionnez la commande propriété dans le
menu contextuel du bouton (touche droite de la souris). Comme nom, vous pouvez garder celui proposé ou taper votre propre nom (par exemple professionnel bouton). Comme source de contrôle, utilisez la flèche de liste à droite pour sélectionner professionnel. Pour insérer du texte sur le bouton, double-cliquez dessus et taper votre texte. Cette possibilités s'utilise de la même manière pour un Bouton bascule, bouton à cocher et Case à cocher
Pour un champ standard (pas de type Oui/non), vous pouvez insérer une zone de texte et modifier les propriétés de la même manière.
4. Cadre d'objet indépendant
Cette fonctionnalité, peu utilisée dans Access, permet d'insérer un objet OLE dans un formulaire (ou un état). Un objet OLE reprend par exemple de la musique, vidéo, clipart et images diverses, graphique Excel, Dans ce cas ci, l'objet est équivalent sur toutes les pages de notre formulaire (il est indépendant), quelque soit l'enregistrement.
Cliquez sur le bouton Cadre d'objet indépendant dans notre formulaire d'adresse (en mode modification):
Vous pouvez soit utiliser un objet existant, soit créer un nouvel objet (généralement modifiable par double-click suivant l'OLE).
Quittons le mode création pour reprendre notre table en mode feuille de données. Pour insérer la photo de la personne, positionnez le curseur sur le champ Photo et par le menu Insertion, sélectionnez la commande Objet. En cochant "A partir du fichier", vous pouvez maintenant lier la photo de votre correspondant avec sa fiche détaillée. Pour afficher la photo, double cliquez sur le champ de l'enregistrement correspondant.
Revenons maintenant à notre formulaire. Insérons un cadre d'objet dépendant en utilisant la barre d'outils. Utilisez la touche droite de la souris pour afficher les propriétés de l'objet et sélectionnez Photo comme source de contrôle.
6. Contrôle d'onglet
Un contrôle d'onglet va nous permettre de dissocier les informations associées en un ensemble de sous fenêtre tout à fait similaires aux fenêtres à onglet de Windows. Les formulaires à Onglets sont utilisés pour dissocier des informations d'un enregistrement ou pour clarifier l'affichage.
Cliquez sur le bouton "Contrôle d'onglet" dans la barre d'outils de création de formulaire. Délimitez la zone d'onglet sur votre formulaire. Vous devriez obtenir quelque chose similaire à ceci
Pour sélectionner l'onglet Page100 comme l'exemple ci-dessus, cliquez simplement sur le nom. Pour insérer un champ, un objet, suivez la même procédure que cidessus. Par contre pour déplacer un objet du formulaire vers l'onglet, vous devez faire un copier - coller. Pour changer le nom de l'onglet, utilisez le menu contextuel (touche droite de la souris) pour afficher les propriétés et changer la propriété Nom.
D'autres possibilités existent par ces mêmes propriétés.
III - Les sous-formulaires
Présentation
Si vous n'êtes pas familiarisés avec lesformulaires, je vous conseille de commencer par consulter la page qui leur est consacrée.
Un sous-formulaire est un formulaire inséré dans un autre formulaire, dit formulaire principal. Les sous-formulaires sont particulièrement utiles pour afficher ou enregistrer les données de deux tables différentes liées entre elles par une relation un-à-plusieurs.
Dans l'exemple ci-contre, le formulaire Fournisseur comprend un sousformulaire Produits qui montre, pour chaque fournisseur, les articles qu'il vend.
Un fournisseur est bien lié à plusieurs produits.
Ce formulaire avec sous-formulaire permet aussi bien d'afficher les produits vendus par un fournisseur, que de saisir ces produits dans la table correspondante. On peut ainsi enregistrer un fournisseur et ses différents produits au moyen d'un seul formulaire.
Création d'un sous-formulaire
Il existe deux grandes méthodes principales pour créer un formulaire comprenant un sous-formulaire.
On peut créer simultanément le formulaire principal et son sous-formulaire.
On peut créer le sous-formulaire à l'intérieur d'un formulaire existant.
Création simultanée d'un formulaire et de son sous-formulaire
Commencer par créer le formulaire principal avec l'Assistant Formulaire (cf. pageFormulaires). Dans la première boîte de dialogue, sélectionner la table sur laquelle sera basé ce formulaire ainsi que les champs à y faire figurer, dans l'exemple, la table Fournisseurs.
Toujours dans la première boite de dialogue de l'assistant Formulaire, sélectionnez la deuxième table qui constituera le sous-formulaire, ici la tableProduits. En fait, l'ordre des tables est indifférent, mais il semble plus logique de procéder ainsi. À l'issue de l'Assistant, Access crée deux formulaires : le formulaire principal Fournisseurs ainsi que le sous-formulaire Produits
Création d'un sous-formulaire à l'intérieur d'un formulaire existant
Ouvrir le formulaire existant en mode Création.
La Boite à outils doit s'afficher automatiquement. Cliquez sur l'outil Sous-formulaire/Sous-état et cliquez à l'endroit où vous souhaitez placer les sous-formulaire.
Il suffit ensuite de suivre les instructions qui apparaissent dans les boîtes de dialogue de l'Assistant.
TD
Gestion des Formulaires sous MS Access
Il s’agit de réaliser une application sous MS ACCESS qui permet de mettre à jour un ensemble de tables via une interface graphique sous windows. Cette interface s’appelle formulaire qui peut être présenter de plusieurs façons tels que mode tabulaire, colonne Simple ou feuille de données.
On s’intéresse à créer des formulaires de mise à jour des tables d’une base de données MS Access nommée « gestionCommande » qui contient deux tables Client et Commande.
1. Créer la base de données « gestionCommande »
2. Créer les tables Client et commande telles que :
|
|
3. Mettre les relations entre les tables
4. Remplir ces tables par quelques enregistrements
5. Attribuer un formulaire « FClient » pour mettre à jour la table Client
6. Attribuer un formulaire « FCommande » pour mettre à jour la table Commande
7. Réaliser un sous formulaire nommé « SousFormulaireCommande » en mode feuille de données basé sur la table commande.
8. Modifier le formulaire nommé « FClient » afin qu’il ajoute comme sous formulaire le formulaire « SousFormulaireCommande » qui affiche les détails de ses commandes avec leur total montant réalisé :
CREATION DES FORMULAIRES CLIENTS
2) Créez un formulaire pour la gestion des composants (COMPOSANTS) comprenant un bouton fermer.
3) Créez un formulaire au format tabulaire à partir de la table COMPLETS (nommé COMPLETS_SF) comprenant les champs idcomposant, defcomos, prix, parentid et idcomplet. Masquez parentid et idcomplet. En pied de formulaire vous ajouterez un champ permettant de calculer la somme des composants (en euro et en gras).
4) Pour la création du formulaire principal des machines complètes, on est obligé de passer par une requête. Créez donc une requête (nommée RCOMPLET) à partir de la table COMPLETS. Vous indiquez uniquement que le champ parentid soit égale à 0
5) Créez alors le formulaire COMPLET (colonne simple) en choisissant les champs idcomplet, defcompos, et prix. Vous ajouterez une zone de liste modifiable qui vous permettra de voir (au moins) le nom du client pour lui affecter la machine. Vous affecterez au champ prix le fait que on doit avoir une valeur supérieur à 0. Le message d’ erreur sera alors « Le prix de vente te permettra pas de vivre alors fait gaffe ». Le champ idcomplet sera masqué.
6) Là ça se complique. Vous allez devoir, dans le formulaire complet insérer le sous formulaire COMPLET_SF. En liant deux champs, un du formulaire complet et un champ du formulaire COMPLET_SF. Pour obtenir :
On veut, pour un client donné avoir la liste des machine qu’il a acheté et pour chacune d’elle obtenir la liste des composants. Pour ce faire vous devrez :
• Sur le formulaire client, mettre un bouton pointant vers le formulaire LISTMACHINE
• Créer un formulaire (LISTEMACHINE) sur la requête RCOMPLET de format tabulaire pour avoir la liste des machines fabriquées.
• Sur le formulaire LISTEMACHINE insérer un bouton ouvrant le formulaire complet.
On veut également pouvoir imprimer un document technique (DOCTECH) pour chaque machine produite sans qu’apparaisse le prix des composants mais seulement le prix de vente de la machine.
On veut avoir la liste des machines produites avec le prix de vente (PARCLIENT) Ensuite on veut faire un menu de démarrage qui permettre d’accéder aux différents formulaires
II- 1) Créez un formulaire pour les clients (CLIENTS) C’ est plus simple pour rentrer de nouveaux clients, pour mettre à jour leurs données…. Remarquez que vous devez marquer le champ id_client qui ne présent pas d’ utilité dans un formulaire. Ajoutez un bouton fermer sur votre formulaire. On reviendra par la suite sur ce formulaire pour y ajouter des fonctionnalités supplémentaires.
Avancé :
Création de formulaires
Plus de formulaires -> Assistant formulaire :
Objectif 1 : Créer un formulaire pour mettre à jour les natures du contact
Créer un formulaire à l’aide l’assistant : Formulaire pour nature du contact :
Sélectionner la table ‘Nature du contact’
Sélectionner les champs qui seront mis à jour sur le formulaire, ici les deux champs de la table : Code et Intitulé
Sur les écrans suivants de l’assistant, sélection des éléments de mise en forme :
En final, le formulaire est généré et prêt à l’emploi :
Créer 3 natures du contact :
Rmq : afin de visualiser le contenu d’une table, sélectionner l’objet Table, puis double-cliquer sur la table.
Objectif 2 : Créer de la même manière un formulaire pour mettre à jour les types de prospect :
En créant 2 types de prospect :