Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Access
2010
Mille jours d’entraînement pour forger,
dix mille jours d’entraînement pour polir.
Ça commence par : A savoir : Ce sont des explications d’ordre général, il faut les lire, prendre des notes,
les consulter ensuite, en fonction des demandes.
Lire très attentivement ce qui est indiqué et l’effectuer. Des indications sont parfois données ensuite
pour préciser comment procéder. Les lire avant d’effectuer ce qui précède.
Vous exécutez toutes les instructions, dans l’ordre, en tenant compte de ce qui a été expliqué
précédemment dans A savoir. Si le résultat annoncé ne correspond pas, utiliser la fonctionnalité Annuler
la frappe pour revenir à la situation antérieure, relire attentivement la partie A savoir ainsi que le détail de
l’instruction à exécuter avant de l’exécuter de nouveau. Si vous ne trouvez pas la cause de ce
dysfonctionnement demandez à l’enseignant de vous indiquer l’origine de ce problème.
1.2 Principes
A savoir : La notion de base de données est apparue dans les années soixante. Ce concept permet la
gestion et l’exploitation de données en tous genres. Son intérêt va bien au-delà du stockage et
de la simple restitution des informations qu’elle contient.
La notion de base de données relationnelle est ensuite rapidement apparue du fait de la
Un système de gestion de base de données tel que Access est organisé autour de tables,
formulaires, requêtes, états et macros :
une table = un fichier, c’est à dire un ensemble de fiches, au sens habituel de fiches de
renseignement
un formulaire = un masque comportant des zones pour la saisie (ou modification) des
fiches,
une requête = une demande de sélection de fiches combinant plusieurs critères,
un état = un document imprimé issu des données des tables et des requêtes,
une macro = sorte de programme pour l’automatisation de certaines tâches ou traitements.
Une base de données peut contenir plusieurs tables (de données). Chaque table correspond à
un fichier au sens classique, c’est à dire à un ensemble de fiches (ou enregistrements au sens
informatique du terme). Un enregistrement comporte plusieurs champs (nom, prénom, etc.).
Table
N° de référence: 12345
N° de
Nom référence: clavette
produit: 51224
Enregistrement N°
Nom de référence:
produit: 00248
circlips
N° de
Fournisseur: référence
GMS
Nom produit: Acipr : F4-25
goupille
Fournisseur:
Stock:Nom produit 12 : F-R-G
bague
Fournisseur:
Stock: 18 F-R-Gp
Champ Stock Fournisseur
d’alerte: :3
Stock:
Stock d’alerte: 4 8 52
Stock :
Stock d’alerte: 7
Stock d’alerte : 10
L’option Ouvrir permet d’accéder au contenu de la table : les enregistrements, pour procéder
à des ajouts, des suppressions, des modifications. Cette pratique est fortement déconseillée.
Il est recommandé d’accéder au contenu de la table au travers de formulaires.
Des opérations de recherche, de tri, de filtrage peuvent être directement exécutées sur la table,
ce qui est très risqué car aucun contrôle n’est exercé sur ces manipulations. Le contenu de la
table apparaît sous forme de tableau : chaque ligne correspond à un enregistrement, chaque
colonne correspond à un champ. Toute opération effectuée sur le contenu de la table est
directement enregistrée dans le fichier (sur le disque) sans demande de validation (d’où le
risque).
Sur la gauche désigne un nouvel enregistrement.
En bas de la table sont affichés des boutons qui permettent de se déplacer dans la base
(enregistrement précédent, suivant), ainsi que le nombre total d’enregistrements.
Le bouton ► désigne un nouvel enregistrement.
La fenêtre de modification comporte, dans sa partie haute, la ou les tables concernées par cette
requête et, dans la partie basse, les champs ainsi que les opérations de tri et les critères de
sélection associés.
niveau – une ceinture). Ces relations (liaisons) peuvent être affichées par le menu Outils de
base de données – Relations.
Lorsque, dans une table, apparaissent des + à côté de la colonne du sélecteur d’enregistrement
(colonne de gauche), c’est qu’une autre table est liée à celle-ci. Il est alors possible d’afficher
les enregistrements correspondants de l’autre table (un clic sur le + pour afficher les éléments
liés, un clic sur le – pour refermer la fenêtre correspondante).
La liaison se fait rarement sur la donnée elle-même. Il est conseillé de l’établir sur un code
associé à cette donnée.
L’intérêt de ce procédé est multiple ; économie de place, facilité de mise à jour, etc.
Dans ce cas il faudra ensuite préciser le nom et le dossier dans lequel la base sera enregistrée.
Dans la partie haute figurent le menu général d’Access sous forme d’onglets et les barres
d’outils.
L’onglet Accueil propose d’exploiter une table intitulée Table1 et d’y entrer des données.
L’onglet Créer permet de développer une base en créant les différentes tables, formulaires,
requêtes et autres, nécessaires à cette base, avec ou sans assistant.
En dessous, sur la gauche (volet de navigation) figurent les objets exploitables, ici la table
Table1 et sur la droite cette table ouverte en saisie, pour y entrer des données.
Par défaut les documents (tables, formulaires, etc.) sont présentés sous forme d’onglets. Il est
possible de les présenter sous forme de fenêtres distinctes. Pour cela aller dans :
Fichier – Options – Base de données active – Options de l’application – Options de la fenêtre
documents – Fenêtres superposées
1. Créer une nouvelle base de données, l’enregistrer sous le nom MaBase2 dans le dossier Access
2010\Bases.
2.2 Création d’une table
A savoir : les données manipulées sont stockées dans une ou plusieurs tables. Chaque table sert à stocker
un ensemble spécifique d’informations (table des références des clients, table des
caractéristiques de produits, etc.), et répétitif, sous forme d’enregistrements (enregistrement
des références du client 1, enregistrement des références du client 2, etc.). Lors de la
conception d’une base il faut éviter de répéter la saisie d’une information (plusieurs employés
habitent la même ville, mais la saisie de la ville de leur domicile risque d’aboutir à des
orthographes différentes, avec éventuellement des fautes de frappe). La solution consiste à
multiplier les tables (noms de villes, types d’aciers, types de machines, secteurs d’activité,
etc.) et à proposer des listes dans lesquelles on choisit l’information.
La première étape de conception d’une base de données sera de définir quelles seront les
tables, avec quel type de contenu.
Lorsque l’on crée une nouvelle base, Access crée automatiquement une première table
intitulée Table1.
Pour créer une nouvelle table : choisir l’onglet : Créer puis le bouton Création de table.
2. Sélectionner la table Table1 et l’ouvrir en mode création. Il faudra pour cela l’enregistrer sous le nom
Clients (dans Enregistrer sous taper le nom Clients).
2.3 Définition de la structure des enregistrements
A savoir : une part essentielle dans la réalisation d’une base de données est la définition et le
paramétrage des champs de chaque table. Une erreur peut imposer de tout recommencer. Il ne
faut pas hésiter à passer beaucoup de temps à réfléchir sur la structure des données. Le soin
apporté à sa définition et à son paramétrage est essentiel pour faciliter son exploitation par la
suite. Toute modification « après coup » est une source d’ennuis multiples car elle ne sera
généralement pas reportée sur les objets qui en dépendent (ainsi un champ ajouté « après
coup » à la table ne sera pas reporté sur le formulaire correspondant). Le temps apparemment
perdu pendant cette étape sera largement compensé ultérieurement. Il existe des principes à
respecter (5 règles de normalisation) pour éviter au maximum les problèmes. Certains de ces
principes seront présentés dans les chapitres suivants.
3. Entrer dans les 4 premières lignes (Ref_client remplacera N°) les informations suivantes :
Nom du champ Type de données Description
Ref_client NuméroAuto Numéro de référence interne du client
Nom_client Texte Nom du client
Num_tel Numérique Numéro de téléphone de l’entreprise
Ville Texte Siège social de l’entreprise
Rappel : éviter la frappe d’espaces dans les intitulés de champs, lui préférer le caractère « tiret bas »
ou « underscore » (car certains logiciels ou modules n’autorisent pas les espaces dans les intitulés
de champs).
Ne pas se soucier pour l’instant de la clé en jaune, affichée (ou non) à gauche de Ref_client
4. Refermer la fenêtre de création de la table Clients en cliquant sur sa case de fermeture
5. A la question « Voulez-vous enregistrer les modifications apportées à la structure de la table
« Clients » ? » répondre Oui
6. Dans la partie gauche, sous l’intitulé « Tous les objets Access », apparaît maintenant Clients
2.4 Entrée des données directement dans la table
A savoir : des données peuvent être directement enregistrées dans une table par un double clic sur le
nom de la table correspondante (ou en sélectionnant la table puis Ouvrir).
On passe d’un champ au suivant en appuyant sur la touche Tabulation.
On passe d’un enregistrement à l’autre en appuyant sur la touche Entrée.
Ce procédé est certes rapide mais peu ergonomique et souvent dangereux. Il est très vivement
conseillé d’utiliser comme intermédiaire des formulaires (qui seront présentés par la suite).
Toute intervention sur les données de la base (ajout, suppression, modification) est
immédiatement enregistrée. Il n’y aura pas de confirmation d’enregistrement de ces
données à la fermeture de la base. Seules les modifications de structure amèneront à une
validation lors de la fermeture de la fenêtre correspondante.
7. Dans Tous les objets Access sélectionner la table Clients, puis Ouvrir. Ajouter les informations suivantes
(après avoir lu les remarques qui suivent le tableau) :
Nom_client Num_tel Ville
M.G.B. 0325306000 Chaumont
Nord Indust 0320299029 La Bassée
Plast Projet 0327783615 Cambrai
Métal Ingénierie SA 0438370171 Grenoble
Sédipa 0320435575 Villeneuve d’Ascq
S.M.P. France 0134382000 Sarcelles
Découp Pro 0328667921 Dunkerque
Remarque : ne rien mettre dans la colonne Ref_client, la colonne de gauche se remplit
automatiquement avec un numéro s’incrémentant à partir de 1,
Remarque : les « 0 » à gauche des numéros de téléphone disparaissent car ils sont de type
numérique (on ne conserve pas les zéros à gauche des nombres). Le choix de ce type de données
n’est pas optimisé (il sera modifié par la suite),
Remarque : il est possible de modifier la largeur des champs (colonnes) en se plaçant entre deux
cellules dans la première ligne (en grisé et comportant les noms des champs – comme pour un
tableau Excel),
Remarque : Cliquer pour ajouter sert à ajouter un champ (une colonne) supplémentaire, pas à
ajouter un nouveau client.
8. Refermer la fenêtre de la table Clients en cliquant sur sa case de fermeture. Remarquer qu’aucune
confirmation d’enregistrement des données n’est demandée. Si vous avez modifié la largeur des colonnes
une confirmation de la sauvegarde de cette modification sera demandée.
9. Quitter Access
2.5 Ouverture d’une base de données existante
A savoir : pour ouvrir une base de données existante il suffit d’ouvrir Access et de la sélectionner dans
la liste des dernières bases ouvertes, dans l’onglet Fichier, ou de cliquer (double clic)
directement sur l’icône de la base de données concernée.
Lors de l’ouverture d’une base de données existante Access affiche un avertissement de
sécurité concernant des macros qui recèleraient du code dangereux pour l’ordinateur. Ne
validez pas si vous avez des doutes sur son origine.
A savoir : la modification du type de données d’une table aboutit parfois à l’impossibilité de convertir
les données d’un type à l’autre. Les données seront effacées et devront être retapées, d’où
l’importance de bien réfléchir lors de la création de la table.
12. Sélectionner la table Clients en mode création, choisir le type Texte pour le champ Num_tel. Refermer la
fenêtre, enregistrer les modifications.
13. Ouvrir de nouveau la table Clients, pour chacun des numéros de téléphone ajouter le zéro qui manque à
gauche ; cette fois-ci ils ne sont plus supprimés. Refermer la table.
2.6 Exercices
Vous travaillez dans une entreprise qui réalise des structures mécano-soudées. Imaginer une table
permettant d’enregistrer le fichier des fournisseurs. Dans un premier temps le travail de conception se fera
sur papier pour définir 5 champs de types différents. Préciser pour chacun sa légende (différente de son
nom de champ) ainsi que d’autres propriétés (adaptées au cas particulier de chaque champ). Créer ensuite
la structure de la table avec Access. Entrer plusieurs enregistrements (fournisseurs).
Vous gérez le stock d’outils de fraisage de votre atelier. En procédant comme dans l’exercice précédent
réaliser une 2ème table permettant de suivre l’évolution de votre stock.
3.1 Principes
A savoir : le formulaire est une interface graphique qui facilite la saisie et la consultation des données.
Les formulaires peuvent contenir des éléments qui ne figurent pas dans les tables (par
exemple l’affichage d’un prix TTC obtenu par combinaison du prix unitaire HT, du nombre
d’articles, de la TVA, d’une remise, etc.), des images (logo de l’entreprise), des boutons de
commande qui donnent accès à d’autres parties de l’application, etc.
Ils participent fortement à la mise en œuvre de l’environnement de l’application. Leur
présentation est très souple (ce qui implique beaucoup de paramètres à connaître). La réussite
d’une application (efficacité, ergonomie, esthétique) passera par le soin apporté à leur
réalisation.
Il existe 2 sortes de formulaires :
les formulaires dépendants, qui sont associés à la saisie, la modification ou l’affichage de
données,
les formulaires indépendants, qui ne sont attachés à aucune table et qui permettent le
fonctionnement de l’application (messages, boites de dialogues, menus, etc.).
Ils n’ont pas la même vocation mais ils se mettent en œuvre suivant la même technique.
La réalisation d’un formulaire s’effectue soit en Mode création qui nécessite la connaissance
des outils correspondants, soit à l’aide de l’Assistant Formulaire qui, au travers de quelques
paramètres, utilise des formulaires prédéfinis. Ce qui permet d’obtenir rapidement une base
opérationnelle. Il est toujours possible ensuite de les modifier à sa convenance afin d’en
améliorer l’ergonomie.
Attention : un formulaire défini à partir de l’assistant prendra en compte les propriétés de la table de
référence. Toute modification ultérieure des propriétés de la table ne sera pas répercutée
dans le formulaire, il faudra intervenir manuellement sur le formulaire pour les répercuter.
Comme il a déjà été dit précédemment, il vaut mieux passer du temps à bien concevoir la
table, pour ne pas en perdre à essayer de répercuter les conséquences d’un changement de la
structure ou du paramétrage d’une table.
A savoir : sur la gauche de cette fenêtre, la bande verticale avec le symbole ► désigne le sélecteur
d’enregistrement (inutile dans ce cas-ci puisqu’il n’y a qu’un seul enregistrement/client
affiché). Les boutons de la ligne du bas permettent de naviguer dans la table Clients et de
choisir un enregistrement particulier pour y apporter des modifications. Le bouton sert à
entrer un nouvel enregistrement.
3.3 Saisie à l’aide d’un formulaire
8. Noter que les intitulés des zones à remplir correspondent aux noms des champs : Nom_Client, Num_tel,
etc. Ce qui n’est pas très ergonomique.
9. Rectifier les enregistrements suivants :
concernant les noms de client, rechercher le client dont le nom est Mécatronix, le remplacer
par Mécatrix
concernant les villes : Saint-Aubert --> Saint Aubert (remplacer le tiret par un espace)
10. Ajouter les enregistrements suivants :
Nom du client Numéro de téléphone Siège social Code postal
Outilplus 0327288910 Valenciennes 59300
Ampertim 0389206892 Colmar 68000
Mécatrix 0892700558 Dijon 21022
Remarquer que :
c’est le nom du champ qui apparaît à gauche pour désigner ce à quoi correspond la zone de
saisie à droite,
le siège social correspond au champ Ville,
lorsque l’on passe à un nouvel enregistrement le curseur ne se replace pas sur le 1er champ.
11. Refermer la fenêtre du formulaire Saisie clients en cliquant sur sa case de fermeture . Remarquer
qu’aucune validation des ajouts ou modifications n’est demandée. La sauvegarde se fait automatiquement
dès que l’on quitte un enregistrement.
3.4 Ajustement des propriétés de la table
A savoir : Un formulaire conçu à partir d’une table, reflète cette table. Certaines des modifications
apportées ensuite à la table ne seront pas reportées sur le formulaire. Il sera alors nécessaire
A savoir : il est possible de définir certaines règles de validité lors de la saisie dans les champs par un
paramétrage judicieux de certaines des propriétés du champ.
Null interdit : s’il est défini à Oui le champ est obligatoire, il devra être renseigné pour que
l’enregistrement soit validé.
Chaîne vide autorisée : s’il est défini à Oui l’enregistrement sera validé sans que l’on y rentre
de donnée, ce qui nécessite réflexion sur les conséquences de ce choix. Le texte "" (guillemet
guillemet, sans espace entre les deux signes) sera autorisé.
A savoir : le formulaire étant l’interface naturelle entre l’utilisateur et la base de données il doit être à la
fois esthétique et ergonomique. Les outils de mise en forme des formulaires sont très élaborés.
Il n’est pas question ici de les détailler, juste d’en découvrir certains aspects.
Une part importante de ce travail consiste à repositionner et redimensionner les étiquettes et
zones de texte correspondant à la saisie et l’affichage.
Etiquette Zone de texte
Ce travail peut s’effectuer « à vue » ou à travers les propriétés de l’objet, accessibles par le
bouton Feuille de propriétés (ou par un clic droit), qui assure plus de précision
Il est possible de sélectionner plusieurs objets pour leur affecter une propriété commune.
3.5 Exercices
A partir des 2 tables de la base de données que vous avez conçue dans l’exercice du chapitre précédent,
réaliser les formulaires de saisie correspondants.
A savoir : les opérations les plus fréquemment effectuées sur une base de données sont la recherche, le
tri, et le filtrage (recherche d’un client, tri alphabétique du personnel, filtrage pour les factures
impayées, etc.). C’est la raison principale de création d’une base. Les procédés présentés à la
suite devront être automatisés à l’aide de requêtes, pour la réalisation d’une application
complète.
4.1 Recherche
A savoir : Cet outil permet de positionner le curseur sur le 1er enregistrement correspondant à la valeur
recherchée. Pour cela :
1) Ouvrir la table dans laquelle la recherche sera effectuée
2) Cliquer sur le champ (nom de la colonne) dans lequel la
recherche sera effectuée,
3) Exécuter la commande Recherche (onglet Accueil –
bouton Rechercher),
4) Taper le texte dans la zone Rechercher :
Options de filtre avancé : définit des critères complexes de filtrage des enregistrements
proches de la gestion des requêtes.
4.4 Exercice
Ajoutez des enregistrements supplémentaires à votre base de données à l’aide des formulaires que vous
avez créés. Tester diverses opérations de recherche, tri et filtrage parmi les données que vous avez
enregistrées
A savoir : les requêtes permettent de réaliser automatiquement les opérations de recherche, tri, filtrage
vues précédemment ainsi que d’autres opérations. Il existe différents types de requêtes.
Quand on définit et exécute une requête « sélection » Access crée une copie de la table avec
ses enregistrements, et travaille sur ces informations. Ce qui a pour conséquence de ne pas
modifier le contenu de la table d’origine.
Par contre si l’on veut créer de nouvelles tables, modifier le contenu d’une table sur de
nombreux enregistrements, il sera nécessaire de mettre en œuvre des requêtes « action ».
Nous allons aborder dans ce qui suit uniquement les requêtes « sélection ».
Pour créer une requête il suffit de choisir l’onglet Créer puis l’un des boutons Assistant
requête ou Création de requête.
La partie haute de la fenêtre de création permet d’afficher la ou les tables concernées, la partie
basse, les champs concernés, ainsi que les opérations à effectuer sur ces champs (recherche,
classement, comptage, etc.). La ligne Critères permet de limiter les enregistrements à ceux
répondant au critère. Divers opérateurs permettent d’enrichir les possibilités de définition des
critères (Et, Ou, Dans, Comme, Entre, >, >=, etc.). Des caractères génériques peuvent être
employés, comme dans les recherches (voir en Annexes la liste des caractères génériques).
Un double clic sur une requête (ou Ouvrir) permet d’en démarrer l’exécution.
c’est qu’il correspond au mode d’affichage SQL. Pour changer le mode d’affichage choisir
Affichage – Mode Création.
5.1 Création d’une requête
Une première requête, intitulée Afficher clients, permettra d’obtenir la liste de tous les clients classée
d’abord par ordre alphabétique (croissant) puis, en cas de noms identiques, par ville. Une seconde
requête, intitulée Afficher clients du Nord, affichera la liste des clients du Nord, dans l’ordre des noms
puis des codes postaux.
Dans la fenêtre Afficher la table choisir la table Clients puis Ajouter, puis fermer la fenêtre Afficher la
table.
Dans la 1ère colonne (partie basse) choisir le champ Nom_client (pour cela cliquer dans la 1ère cellule à
droite de Champ, une flèche de liste déroulante apparaît, choisir dans la liste : Nom_client), puis le
tri Croissant (cliquer dans la cellule puis dans la liste déroulante), l’affichage doit être coché, ce
qui génèrera l’affichage du nom des clients dans l’ordre alphabétique croissant,
Dans la 2ème colonne choisir le champ Ville, puis le tri Croissant, vérifier que l’affichage est coché. Grâce
à cela, si des clients portent le même nom, les enregistrements correspondants seront classés par
nom de ville (siège social) croissant.
Fermer la fenêtre et valider l’enregistrement des modifications, donner le nom Afficher clients à cette
requête.
Exécuter la requête Afficher clients (2 clics), observer le résultat en s’assurant que le classement est le
bon puis refermer la fenêtre.
5.2 Définir un critère
3. Créer une nouvelle requête.
Choisir la table Clients puis Ajouter, puis fermer la fenêtre Afficher la table.
Dans la 1ère colonne choisir le champ Nom_client, puis le tri Croissant, vérifier que l’affichage est coché.
Dans la 2ème colonne choisir le champ Code_postal, l’affichage doit être coché, taper le critère « 59??? »
(taper uniquement la partie entre les guillemets), si vous cliquez ailleurs Access le réaffichera sous
la forme « Comme "59 ???" » ; ce qui génèrera à l’exécution l’affichage alphabétique des clients et
de leur code postal, dont le siège social est dans le Nord (revoir en Annexes la liste des
caractères génériques)
Fermer la fenêtre et valider l’enregistrement des modifications, donner le nom Afficher clients du Nord
à cette requête.
Exécuter la requête Afficher clients du Nord (2 clics), observer le résultat en s’assurant que le
classement est le bon puis refermer la fenêtre.
Modifier la requête Afficher clients du Nord en ajoutant en 3ème colonne le champ Ville sans l’afficher.
Refermer en validant.
Ouvrir de nouveau en modification cette requête. Le 3ème champ n’a pas été enregistré. Le logiciel
considère qu’un champ placé en dernier, non affiché, est inutile donc il a été supprimé. Il faut
donc le positionner ailleurs
Modifier la requête pour qu’elle affiche les noms de ville au lieu des codes postaux, toujours pour les
clients du Nord.
5.3 Création d’une requête paramétrée
A savoir : les requêtes telles que Afficher clients du Nord s’appliquent à des critères prédéfinis (ici le
département 59), ce qui limite la souplesse du procédé. Il est possible de contourner cette
limitation par le paramétrage des critères. L’information sera entrée au moment de l’exécution
de la requête sous la forme d’une fenêtre dans laquelle apparaîtra la question permettant de
préciser le critère sur lequel porte la requête. La question sera encadrée de crochets ( [……] )
lors de la définition de la requête, dans la partie Critères, pour le champ correspondant, et sera
remplacée par la réponse lors de l’exécution de la requête.
La requête intitulée Afficher Clients du Nord permet uniquement de lister les clients du département du
Nord. Pour étendre ce procédé à un département quelconque il est nécessaire de paramétrer le critère de
choix du champ Code_postal en associant la réponse (les 2 chiffres du département) aux 3 chiffres
suivants (quelconques) constituant le code postal.
4. Créer une nouvelle requête intitulée Afficher clients d’un département issue de la table Clients, en
faisant apparaître dans cet ordre les 3 champs Nom_client, Ville, Code_postal, dont seuls les 2
premiers seront affichés, et classée suivant l’ordre alphabétique croissant des noms de clients.
Utiliser comme critère pour le 3ème champ :
5.4 Exercice
Ajouter un champ supplémentaire à chacune des 2 tables, rectifier les formulaires en conséquence,
compléter les enregistrements, réaliser une requête sur chaque table, avec le critère de votre choix
6.1 Principes
A savoir : le concept de liste de choix est très souvent exploité dans les applications informatiques. Le
cas le plus typique est la saisie de « Monsieur », « Madame » ou « Mademoiselle ». Pour
éviter à l’utilisateur de taper l’information, les propositions sont affichées, il n’y a qu’à choisir
parmi celles-ci. Ce qui évite toute erreur de frappe, toute confusion dans la donnée à saisir, ce
qui procure aussi un gain de temps appréciable et assure l’homogénéité des données saisies.
Dans certains contextes il est aussi possible de saisir une valeur non proposée, qui sera (ou
non) ajoutée à la liste. Les termes Liste déroulante, Liste Combo ou ComboBox sont parfois
rencontrés pour désigner cet outil.
L’information « Secteur d’activité de l’entreprise client » va être traitée dans ce qui suit. Les différents
secteurs pris en considération sont les suivants :
Automobile – Hydrocarbures – Médical – Contrôle – Charpente – Démolition – Emballage –
Fonderie – Téléphonie – Levage – Plasturgie – Sécurité – Transport
6.2 Mise en œuvre d’une liste de choix
Il existe différentes méthodes de mise en œuvre des listes de choix. L’une d’entre-elles consiste à saisir
directement les valeurs.
1. Ouvrir la base MaBase7.Une autre table (Commerciaux) a été ajoutée, elle servira en fin de chapitre.
2. Ouvrir la table Clients en mode création.
3. Ajouter à la suite des 5 premiers champs, le champ Secteur_activite, (type de données : Texte, description :
Secteur d’activité de l’entreprise, taille du champ : 25, légende : Secteur d’activité).
4. Revenir sur le type de données, choisir le type Assistant liste de choix
5. Sélectionner Je taperai les valeurs souhaitées puis Suivant
6. Conserver Nombre de Colonnes 1 , taper sous Col1 les 4 premiers secteurs d’activité ci-dessus
(Automobile, Hydrocarbures, etc.) puis Suivant
7. Valider comme étiquette Secteur_activite, cocher Limiter à la liste puis Terminer
8. Dans la partie basse, dans Propriétés du champ, cliquer sur l’onglet Liste de choix et observer le contenu
9. Refermer la table Clients en validant les modifications et l’ouvrir en saisie (double clic). Une colonne a
été ajoutée à droite, régler sa largeur pour que le nom du champ soit affiché complètement. En cliquant
(1 clic) dans le champ Secteur d’activité du 1er enregistrement apparaît un bouton ▼ de déroulement de
liste de choix. En cliquant dessus, la liste des choix précédemment enregistrés apparaît. S’assurer que les
références client sont dans l’ordre croissant sinon rectifier. Saisir, pour les 3 premiers enregistrements, les
données suivantes :
A savoir : la conception des tables d’une base de données relationnelle doit obéir à une procédure
clairement formalisée qu’on appelle normalisation. (Access 2003, Campus Presse, Roger
Jennings).
Première forme normale : elle suppose que les tables ne contiennent aucun champ ou
groupe de champs dont le contenu serait répété. D’autre part tous les enregistrements
possèdent le même nombre de champs. Lorsque la même valeur risque d’apparaître dans
plusieurs enregistrements, le champ doit faire l’objet d’une nouvelle table.
6.3 Création d’une table servant de liste de choix
Le nom de ville et le secteur d’activité sont des cas évidents de non-respect de cette règle. Les textes
correspondants sont présents dans chaque enregistrement ; en cas d’erreur ou de modification (imaginons
que l’on veuille remplacer Automobile par Transport), une correction devra donc être apportée à chacun
des enregistrements concernés, ce qui peut amener à des incohérences de contenu et une perte de temps
considérable. Pour respecter la première forme normale pour la donnée Secteur d’activité, il est
nécessaire de créer une nouvelle table. Plutôt que d’enregistrer la donnée (le terme « Hydrocarbure »
nécessite un champ d’au moins 24 octets) c’est son code de référence qui sera entré au travers d’un
NuméroAuto qui occupe 4 octets, il n’y aura plus de problème de correction de données, il suffit d’agir au
niveau de la table des secteurs d’activité (au travers d’un formulaire). Il faudrait procéder de même pour
les villes. C’est aussi une des raisons d’être du numéro de référence client qui sera exploité par la suite.
11. Ouvrir la table Clients, constater que les références client numéro 7, 14 et 21 n’existent pas, les numéros
de référence vont jusqu’à 36 mais le nombre d’enregistrements est de 33. Refermer
12. Créer la table Activites et la définir avec un seul champ comme suit :
Nom du champ : Secteur_activite,
Type Texte,
Taille du champ : 25,
Description : Secteur d’activité de l’entreprise,
Légende : Secteur d’activité,
Null interdit : Oui,
Chaîne vide autorisée : Non,
Indexé : Oui – sans doublons
(l’indexation améliore les opérations de tri, le refus des doublons empêche de taper 2 fois le même
secteur d’activité)
13. Refermer la table. A la question « Aucune clé primaire n’a été définie … voulez-vous la créer
maintenant ? » Répondre Non
14. Créer un formulaire de saisie des secteurs en choisissant comme seul champ Secteur_activite. Le nommer
Saisie activite. Terminer par la saisie des 5 premiers secteurs d’activité de la liste. Refermer le
formulaire. Ouvrir la table Activités pour vérifier leur présence et refermer.
6.4 Désignation de la table comme liste de choix
Pour qu’une table serve de liste de choix il faut qu’elle soit désignée au niveau du type de données de la
table correspondante.
Ce procédé n’est pas totalement satisfaisant. En effet il présente les avantages de ne pas avoir à taper les
valeurs et à garantir l’homogénéité des informations entrées (caractères accentués, majuscules, etc.), mais
présente l’inconvénient de stocker à chaque fois la globalité de l’information (12 caractères pour
Hydrocarbure). D’autre part une rectification d’une des activités ne sera pas automatiquement reportée
(voir le test qui suit).
16. Ouvrir la table Activites. Cliquer sur le + de la ligne Contrôle pour afficher les clients correspondants ;
il y en a 2. Refermer la sous-fenêtre à l’aide du - . Rectifier l’orthographe de Contrôle avec un « s » au
bout (Contrôle Contrôles), observer le nombre de clients associés, il n’y en a aucun. Revenir à
l’orthographe initiale de Contrôle. Les 2 clients sont à nouveau pris en compte.
Refermer la table Activites.
A savoir : pour s’affranchir des problèmes liés aux modifications apportées au contenu d’une liste de
choix, il suffit d’associer à chaque élément de la liste de choix un numéro de code, qui sera
enregistré dans la table visée. Ce sera alors ce code qui fera le lien entre la table et la liste
(elle-même dans une autre table). Le code sera facilement obtenu par un NuméroAuto. Soit le
lien est créé dès la conception des tables, soit il faudra rompre le lien avec la liste de choix
précédente pour le rétablir correctement ensuite.
Bien comprendre cette technique, elle est fondamentale pour réaliser une
base de données efficace.
17. Choisir l’onglet Outils de base de données – Relations. Une fenêtre s’affiche avec un lien entre les 2
champs Secteur_activite. Cliquer (gauche) une fois sur ce lien, il s’affiche plus épais, appuyer sur la touche
Suppr du clavier, répondre Oui à la question. Refermer la fenêtre des relations.
18. Ouvrir la table Activités en mode création
insérer une ligne en 1ère ligne à l’aide du bouton Insérer des lignes
définir dans cette nouvelle ligne le champ suivant :
Nom du champ : Ref_activite,
Type : NuméroAuto,
Description : Numéro de référence du secteur d’activité,
Nouvelles valeurs : Incrément,
refermer.
19. Ouvrir la table Clients en mode création
sélectionner pour le champ Secteur_activite le type Assistant Liste de choix
sélectionner la table Activités puis ses 2 champs
sélectionner le tri croissant sur le champ Secteur_activite puis Suivant
désélectionner la case Colonne clé cachée
réduire à 0 la largeur de la colonne Ref_activite (pour qu’il n’apparaisse pas lors de la saisie) puis Suivant
désigner le champ Ref_activite comme valeur à stocker
valider le nom de l’étiquette et Terminer
enregistrer la table en effaçant le contenu des champs, accepter les autres notifications
remarquer que le type du champ Secteur_activite de la table Clients est maintenant numérique
refermer la table
20. Ouvrir la table Client en saisie, redéfinir les secteurs d’activité des 6 premiers clients. Refermer
21. Modifier dans la table Activités l’orthographe du secteur d’activité Contrôle comme précédemment,
refermer
22. Ouvrir à nouveau la table Clients, observer le résultat, refermer.
23. Rétablir l’orthographe d’origine du secteur d’activité Contrôle
Il est maintenant nécessaire de rectifier le formulaire de saisie des clients pour y intégrer le nouveau mode
de saisie du secteur d’activité.
6.5 Zone de liste déroulante
Les modifications apportées à la table Clients n’a pas été reportées dans le formulaire Saisie clients. Il va
donc falloir intervenir « manuellement » sur le formulaire pour ajouter une zone de saisie avec liste de
choix
A savoir : l’élément qui permet d’exploiter une liste de choix dans un formulaire s’appelle une zone de
liste déroulante. Son paramétrage reprend les mêmes éléments que lors de l’appel au type
Assistant Liste de choix lors de la création d’une table. Il faut en particulier veiller au
paramétrage de :
Format Nbre colonnes
Largeurs colonnes
Données Source contrôle
Origine source
Contenu
Colonne liée
L’assistant de mise en place d’une liste de choix dans la boîte à outils permettra d’apporter
une réponse claire à ce paramétrage
cliquer dans la partie Contrôles sur le bouton Zone de liste déroulante (1 clic),
positionner la souris sous la zone de saisie Ville et cliquer en maintenant pour délimiter une zone (pour
l’instant son dimensionnement importe peu)
valider Je veux que la liste de choix recherche les valeurs dans une table ou requête, puis Suivant,
valider le choix de la table Activités puis Suivant,
déplacer les 2 champs Ref_activite et Secteur_activite à droite, puis Suivant,
définir un tri croissant pour Secteur_activite, puis Suivant
désélectionner la case Colonne clé cachée
réduire à 0 la largeur de la colonne Ref_activite , puis Suivant,
désigner le champ Ref_activite comme valeur à stocker, puis Suivant,
sélectionner Stocker la valeur dans ce champ et choisir le champ Secteur_activite puis Suivant,
(ce qui signifie que si l’on choisit Automobile dans la liste des secteurs d’activités c’est le nombre
1 qui sera stocké comme secteur d’activité dans la table des clients),
choisir pour étiquette Secteur d’activité (c’est le nom qui apparaîtra dans le formulaire pour la saisie
donc les espaces et les accents sont conseillés) puis Terminer
En procédant ainsi les paramétrages sont : (clic droit – Propriétés – Données)
Source contrôle : Secteur_activite
Contenu : SELECT [Activités].[Secteur_activite], [Activités].[Ref_activite]
FROM [Activités] ORDER BY [Secteur_activite];
Origine source : Table/Requête
Colonne liée : 2
Relier ces indications aux manipulations que vous venez d’effectuer.
A l’aide du pinceau reproduire sur l’étiquette Secteur d’activité la mise en forme des autres étiquettes (1
clic gauche sur Siège social puis 1 clic sur le pinceau puis 1 clic sur l’étiquette), faire de même
pour la zone de liste déroulante
paramétrer correctement l’étiquette Secteur d’activité
1 clic droit sur l’étiquette puis Propriétés – Format
Largeur : 3 cm
Hauteur : 0,5 cm
Haut : 5 cm
Gauche : 0,5 cm
paramétrer correctement la zone de liste déroulante
Largeur : 3 cm
Hauteur : 0,5 cm
Haut : 5 cm
Gauche : 4,5 cm
fermer la fenêtre du formulaire en enregistrant les modifications.
25. Utiliser le formulaire Saisie activités pour compléter la saisie des activités
26. Ouvrir le formulaire Saisie clients en saisie, reprendre les affectations précédentes de secteur d’activités,
poursuivre pour les autres clients, refermer la fenêtre du formulaire de saisie.
27. Refermer la base de données MaBase7.
6.6 Mise en pratique
28. Observer la table Commerciaux qui a été ajoutée, Observer sa structure et son contenu et refermer.
29. Créer une table appelée Sexes contenant les 2 enregistrements suivants :
Ref_sexe Sexe
1 Masculin
2 Féminin
30. Ajouter à la table Commerciaux un champ Sexe associé à une liste de choix sur la table Sexes
31. Créer le formulaire Saisie commerciaux et l’utiliser pour compléter la table des commerciaux
32. Refermer la base de données MaBase7.
La technique des listes de choix est une première approche du concept de base de données relationnelle.
Un lien a été établi entre la table des activités et la table des clients. C’est une première forme de relation
qui apporte 2 avantages :
un gain de place ; c’est la référence de l’activité qui est stockée dans la table des clients même si c’est
l’activité qui est affichée, la correspondance se fait au moment de l’affichage,
une grande facilité de modification des activités ; toute correction dans la table des activités est
immédiatement prise en compte puisque c’est la référence qui est stockée, pas le texte.
Le principe de relation, sous-jacent dans les listes de choix, va être étudié plus dans le détail au chapitre
suivant.
6.7 Exercice
Analyser les champs de chacune de vos tables, déterminer si l’un d’entre eux peut servir de liste de choix.
Si c’est le cas le mettre en œuvre, sinon ajouter un champ supplémentaire et l’utiliser comme liste de
choix.
7.1 Principes
A savoir : l’impression d’un document passe par la création d’un état. De nombreux paramètres
permettent de définir la forme souhaitée pour l’impression des données, mais seul l’ordre
croissant ou décroissant des données peut être choisi, c’est pourquoi, plutôt que de concevoir
un état à partir d’une table, il est souvent préférable de créer une requête répondant aux
critères de tri et/ou de filtrage que l’on s’est fixé pour l’associer à l’état. Sa conception est
similaire à celle des formulaires avec, en plus des paramètres liés à la gestion des pages
(entêtes, pieds de page, etc.). Les techniques de modification sont aussi identiques à celles des
formulaires.
7.2 Création d’un état à l’aide de l’assistant
1. Ouvrir la base MaBase6.
2. Créer un état à l’aide de l’assistant
3. Pour Tables/Requêtes apparaissent maintenant la table et les requêtes conçues précédemment. Choisir la
table Clients puis les champs Nom_client, Num_tel, Code _postal et Ville dans cet ordre et passer à Suivant.
4. A la question « Souhaitez-vous ajouter un niveau de regroupement » ne pas répondre et passer à Suivant.
Cette question aurait pu servir si, par exemple, un même client avait plusieurs numéros de téléphone
(avec une autre organisation de la base)
5. Choisir l’ordre de tri Nom_client Croissant et passer à Suivant.
6. Ne pas modifier la disposition Tabulaire et l’orientation Portrait (vertical) et passer à Suivant.
7. Donner le titre Liste clients, conserver Aperçu de l’état et passer à Terminer.
8. Observer l’aperçu proposé, le sélecteur du bas permet de visualiser les différentes pages. Refermer.
7.3 Modification d’un état
9. Ouvrir l’état Liste clients en mode création
sélectionner l’étiquette de l’entête d’état (clic droit puis Propriétés). Modifier comme indiqué à la suite :
Largeur : 10 cm
Hauteur : 1,2 cm
Haut : 0,4 cm
Gauche : 1 cm
Epaisseur bordure : 2 pt
Couleur bordure : noir (texte 1)
Police : Arial Black
Aligner texte : Centre
Italique : oui
Vous remarquerez que les valeurs numériques entrées seront automatiquement légèrement
corrigées (de même que pour les formulaires).
refermer la fenêtre Propriétés en enregistrant les modifications. Afficher l’aperçu. Rectifier (mode
création) la position de la zone intitulée En-tête de page, l’amener au trait de quadrillage 2 cm,
afficher le résultat.
7.4 Utiliser une requête comme source pour un état
Comme il a été vu précédemment pour obtenir des listes partielles, triées, regroupées, etc. il faut passer
par une requête. Ce qui suit a pour but d’imprimer la liste des clients du Nord avec leur nom, leur numéro
de téléphone et leur siège social dans cet ordre.
10. Modifier la requête nommée Afficher clients du Nord, pour afficher en plus le siège social. Paramétrer
pour obtenir :
une liste classée par nom,
à nom identique classée par siège
uniquement des clients du Nord
sans affichage du code postal.
Refermer. Vérifier le résultat (8 entreprises doivent être affichées).
A savoir : lorsque l’on définit un classement sur plusieurs champ il s’effectue de gauche à droite
(classement sur le champ le plus à gauche ; à données identiques, classement des
enregistrements sur le 2ème champ, etc.). Il faut donc faire attention à l’ordre dans lequel sont
placés les champs.
11. Utiliser cette requête pour créer l’état qui sera nommé Liste Clients du Nord à l’aide de la précédente
requête et de tous ses champs disponibles. Noter qu’il est inutile de définir un critère de tri, c’est la
requête qui s’en charge, noter aussi l’absence du champ Code_postal du fait qu’il n’est pas affiché.
Vérifier le résultat. Tester diverses présentations, ajouter l’affichage du numéro de téléphone, modifier
l’étiquette de l’en-tête comme pour la liste des clients.
12. Refermer tout
7.5 Exercice
Ajouter des enregistrements supplémentaires à vos tables et utiliser les requêtes pour réaliser un état à
partir de ces critères
8.1 Principes
A savoir : comme leur nom l’indique les bases de données relationnelles permettent de mettre en relation
plusieurs tables (associer un fournisseur à un produit, un client à une facture, …). Les
relations permettent de décrire de manière pratique le lien existant entre deux tables.
Les relations utilisent les clés primaires et composites pour établir les liens entre les tables.
Ces liens sont rendus possibles grâce à l’unicité des clés dans chaque table.
Relations
Il existe trois types de relations :
Relation un à plusieurs (noté 1 – n ou 1 – ∞) : un enregistrement de la table A peut être en
relation avec plusieurs enregistrements de la table B mais un enregistrement de la table B est
en relation avec au plus un enregistrement de la table A (A – fournisseur, B – produit : un
fournisseur peut fournir plusieurs produits, un produit provient d’un seul fournisseur),
Relation plusieurs à plusieurs (noté n – m) : un enregistrement de la table A peut être en
relation avec plusieurs enregistrements de la table B et un enregistrement de la table B peut
être en relation avec plusieurs enregistrements de la table A (A : client, B : produit ; un client
peut acheter différents produits, un produit peut être vendu à plusieurs clients). Ce type de
relation, fortement déconseillé, ne peut pas être mis en œuvre directement, il pourra être
réalisé au travers des tables liées (adjonction d’une table intermédiaire contenant les
associations 1 client-1 produit).
Relation un à un (noté 1 – 1) : un enregistrement de la table A peut être en relation avec au
plus un enregistrement de la table B et un enregistrement de la table B peut être en relation
avec au plus un enregistrement de la table A (A – numéro INSEE, B – numéro employé),
utilisé exceptionnellement, pour des raisons de sécurité en séparant deux tables.
La mise en relation peut se faire uniquement à l’intérieur d’une même base de données. Pour
maintenir à tout moment l’intégrité référentielle d’une base, il suffit de respecter
scrupuleusement une seule règle : chaque valeur d’une clé étrangère dans une table liée doit
correspondre à la valeur d’une clé primaire dans la table primaire. Ce qui entraîne les
contraintes suivantes :
Il doit être impossible d’ajouter un enregistrement du côté plusieurs d’une relation
1 – plusieurs sans qu’il existe un enregistrement lié du côté 1 de la relation
Il doit être impossible de supprimer un enregistrement du côté 1 d’une relation
1 – plusieurs sans supprimer d’abord tous les enregistrements qui en dépendent.
Il doit être impossible de modifier la valeur d’un champ de clé primaire d’une table
de base dont dépendent les enregistrements d’une table secondaire.
Il doit être impossible de modifier la valeur d’un champ d’une clé étrangère
dans une table liée en lui donnant une valeur qui n’existe pas dans le champ
clé primaire de la table de base
Jointure
Dans une relation de type 1 – n il existe plusieurs possibilités de joindre les enregistrements
des 2 tables.
Jointure interne : qui inclut seulement les enregistrements des 2 tables pour lesquels les
champs joints sont égaux (pour lesquels 1 fournisseur est associé à 1 produit)
Jointure externe gauche : qui inclut tous les enregistrements de la table Fournisseurs et
seulement ceux de la table Produits pour lesquels les champs joints sont égaux
Jointure externe droite : qui inclut tous les enregistrements de la table Produits et seulement
ceux de la table fournisseurs pour lesquels les champs joints sont égaux
Mise en oeuvre
1) Dans l’onglet Outils de base de données – Relation – Afficher la table choisir les tables à
afficher (sélection + Ajouter)
Attention
la liaison apparaîtra
une fois la fenêtre
suivante refermée
3) Dans la fenêtre Modifier des relations choisir le Type de jointure (la jointure 1 ou
jointure interne) cocher Appliquer l’intégrité référentielle et Mettre à jour en cascade
les champs correspondants
1. Ouvrir Mabase8
Le but de ce qui suit est d’associer à chaque client (entreprise), un commercial en créant une relation 1 (le
commercial) – N (les entreprises associées), au travers de sa référence. Ce travail va se dérouler en 4
phases :
définir des clés d’index (voir ce qui suit)
ajouter un champ à la table des clients pour y stocker la référence du commercial,
créer la relation Commercial – Client,
créer un formulaire de saisie du commercial associé au client.
Pour que le logiciel puisse gérer les relations il a besoin d’une information supplémentaire sur la position
des enregistrements dans les tables, c’est le rôle de la clé primaire.
2. Modifier (et valider) l’une après l’autre les 4 table en désignant le 1er champ (Ref_...) comme clé primaire
Il est maintenant possible d’associer à chaque commercial une ou plusieurs entreprises (par exemple :
entreprises dont il a la charge pour un suivi de clientèle).
La dernière étape de ce processus consiste en la création du formulaire qui permettra de saisir, pour
chaque entreprise, le commercial référent.
Les champs Nom_client et Ville peuvent être modifiés au cours de cette saisie. Pour l’éviter il faut les
verrouiller (ce qui n’empêche pas le curseur de s’y mettre).
8.5 Exercice
Revoir l’ensemble de votre base de données pour pouvoir associer chaque type de fraise à un fournisseur,
en vous inspirant de ce qui précède.
000\-000\-00\-00;0;_
000 impose l’entrée des trois chiffres
\- - est un caractère fixe de séparation affiché au départ de la saisie
;0 l’intitulé complet est enregistré (tirets compris)
;_ affiche le caractère _ pour matérialiser la zone à remplir
Les numéros de téléphone des commerciaux sont tous sous la forme « 03-27-99-**-** », où
« **-** » représente le numéro de poste au sein de la société
1. Ouvrir Mabase9.
2. Déterminer la taille du champ Num-tel.
3. Ouvrir la table Commerciaux en mode création, modifier la taille du champ et enregistrer le masque de
saisie des n° de tél. Refermer.
4. Ouvrir la table en saisie et entrer les 3 premiers n° de poste. Refermer.
5. Ouvrir le formulaire Saisie commerciaux en saisie, se placer sur le 4ème enregistrement, cliquer dans la
zone de saisie du n° de tél. Remarquer que le masque de saisie n’apparaît pas. En effet, se rappeler de ce
qui a été dit précédemment (Chap. 3.4) : toute modification apportée « après coup » à la structure d’une
table n’est pas reportée dans les formulaires correspondants, il faut la reporter soi-même. Refermer.
6. Ouvrir le formulaire Saisie commerciaux en mode création, accéder à Propriétés – Données de la zone
de saisie du n° de tél., redéfinir le masque de saisie. Refermer.
7. Saisir les n° de poste restant à l’aide du formulaire.
9.2 Légende
A savoir : le nom donné à un champ ne correspond pas obligatoirement à la désignation d’usage. Il doit
cependant être suffisamment signifiant pour être immédiatement interprété sans risque
d’erreur par le développeur, mais aussi adapté à l’utilisateur et au contexte.
Le développeur a à sa disposition 3 paramétrages :
le nom donné au champ dans la table
par exemple Num_telephone
la légende associée au champ dans la table
par exemple Numéro de tél
l’étiquette associée à la zone de saisie dans le formulaire, qui peut être différente
d’un formulaire à l’autre
par exemple Numéro de poste
Téléphone travail
8. accéder à la table et au formulaire, associés aux commerciaux, et noter les intitulés affectés au numéro de
téléphone pour chacun des 3 cas.
A savoir : dans une table il est possible de stocker du texte, mais aussi des images et des zones de
commentaire libre (ce champ n’a pas de longueur définie, elle est allouée dynamiquement lors
de la saisie) ainsi que des éléments liés à divers logiciels.
La maîtrise de ces divers éléments permettra de rendre la base plus performante.
De façon générale, l’intégration d’un objet OLE (Object linking and embedding), c'est-à-dire
produit par un autre logiciel, nécessite la présence de ce logiciel pour son exploitation (par
exemple Paint pour les images, PowerPoint pour les diapos, etc.)
Il semblerait que l’on ne puisse stocker dans une table que des images au format bmp
(bitmap). Les images mises à votre disposition dans ce but sont à ce format.
9.3 Table avec photos et commentaires
Les modifications apportées à une table après création d’un formulaire ne sont pas reportées dans le
formulaire. La mise en place des photos et des commentaires se fera dans un 1er temps dans la table, puis
des modifications seront apportées au formulaire de saisie pour les gérer.
Le dossier Photos d’identité est présent dans le dossier Access 2010\Access Poly\Images
A savoir : pour éviter au maximum les erreurs de saisie il est possible de mettre en place pendant la
création d’une table (ou sa modification) des tests de validation à 2 niveaux :
au niveau d’un champ, dans la partie Propriétés du champ, par le paramètre Valide si,
complété par Message si erreur ; dans ce cas la condition est testée immédiatement
après la saisie du champ ;
au niveau de la table, dans la fenêtre Propriétés de la table, par le paramètre Valide si,
complété par Message si erreur ; dans ce cas la condition est testée à la fermeture de
l’enregistrement (il faut, bien sûr, une condition plus globale afin de vérifier la
cohérence de plusieurs champs entre eux).
Il n’est pas envisageable de détecter toutes les erreurs de saisie ; aucun test ne permettrait de
savoir si le nom d’un nouvel adhérent s’écrit « Dupont » ou « Dupond » mais il est impossible
qu’il pèse 758 kg.
9.4 Mise en place de contrôles de saisie
Concrètement c’est le contexte de l’application qui apporte des indications sur les tests à mettre en place :
une date de naissance doit être antérieure à celle du jour de la saisie (sauf pour un logiciel
d’obstétricien !!!), de même une date d’embauche doit correspondre à un âge supérieur à 18 ans (par
exemple). Ce sont ces tests qui vont être mis en place dans la base
Le test sur l’âge au moment de l’embauche ne peut s’effectuer qu’après l’entrée des 2 dates, il sera donc
placé au niveau de la table.
cliquer sur le bouton Feuille de propriétés ou clic droit n’importe où dans la fenêtre Commerciaux pour
accéder aux propriétés de la table,
accéder au champ Valide si
accéder au générateur d’expression (bouton … ) et entrer la formule :
[Date_embauche] > AjDate("aaaa" ;18 ;[Date_naissance]) (ou "yyyy" si ça ne fonctionne
pas)
AjDate ajoute une durée à une date (ici 18 ans) à la date de naissance)
s’assure que la date d’embauche est supérieure (strictement) à la date de naissance plus 18
ans
accéder à la propriété du champ Message si erreur et entrer le texte :
Erreur de date (âge<18 ans)
Enregistrer les modifications
16. Fermer la table, annuler la vérification des données avec les nouveaux paramétrages, les dates
d’embauche n’étant pas encore saisies, cela aboutirait à une erreur.
17. Ouvrir le formulaire Saisie commerciaux en saisie et ajouter les données suivantes en faisant des erreurs
pour tester la validation des dates.
Nom Date embauche
Labrye 24/04/2002
Bonino 14/08/2003
Pirlot 07/10/2003
Pagniez 24/02/2002
Monier 12/11/2005
Bouchoire 07/10/2003
Pugnetti 14/08/2001
Vitrant 19/09/2005
Bortot 11/05/2007
Grard 14/08/2001
Ratajczak 03/02/2008
Refermer la table
9.5 Présentation des formulaires
A savoir : La présentation des formulaires peut être optimisée par le choix judicieux de ses paramètres
(fenêtre des propriétés). Dans l’onglet Format il est, entre autres, intéressant de paramétrer :
Légende : qui définit le titre affiché sur le haut du formulaire,
Afficher sélecteur : zone grisée sur la gauche, le sélecteur permet de passer d’un
enregistrement à l’autre, (mettre à Non quand elle est inutile),
Barre défilement : affiche ou non les barres de défilement à droite ou en bas (mettre à Aucune
quand elles sont inutiles),
Boîte de contrôle : ensemble des 3 boutons en haut à droite des fenêtres
Bouton Fermer : indispensable sauf si un bouton de fermeture a été mis en place dans le
formulaire
Boutons MinMax : rarement utile, permet de mettre la fenêtre en plein écran ou de la réduire
N.B. cliquer dans la partie grisée du formulaire pour accéder aux propriétés ou directement
sur le bouton Feuille de propriétés.
18. Ouvrir le formulaire Saisie commerciaux en saisie, observer les éléments signalés ci-dessus, refermer
19. Modifier les propriétés suivantes du formulaire :
Afficher sélecteur : Non
Barre défilement : Aucune
Boutons MinMax : Aucun
La mise en œuvre des boutons d’option est particulière. La donnée correspondante n’est pas
associée à l’un des boutons mais à l’objet Groupe d’options qui définit le groupe de boutons
qui sont liés ; chaque bouton est associé à un nombre (1, 2, 3, …), le champ correspondant
sera donc numérique ; l’objet Groupe d’options prend la valeur correspondant au bouton
sélectionné. La sélection d’un des boutons du groupe de boutons d’option désélectionne les
autres.
Attention : pour que les boutons soient associés au groupe d’options il faut d’abord
positionner le groupe d’options et ensuite placer les boutons à l’intérieur. Pour vous assurer
que les boutons soient pris en compte comme éléments du groupe, l’intérieur du cadre du
groupe d’options apparaît en vert lorsque les boutons d’option sont mis en place.
La table des commerciaux va être enrichie avec une information supplémentaire, à savoir si le
commercial utilise son véhicule personnel ou un véhicule de service. Un champ va être ajouté à la table et
des boutons d’options seront placés dans le formulaire de saisie
Fermer le formulaire et l’ouvrir en saisie. Ajoutez les données correspondantes à votre gré.
24. Ouvrir la table Commerciaux, observer le résultat. Noter que la valeur par défaut (1) Personnel ne sera
prise en compte que pour les nouveaux commerciaux.
9.7 Création d’un formulaire avec sous formulaire
Il n’est pas possible d’afficher directement un commercial avec les entreprises associées. Il faut utiliser un
formulaire (qui affiche le commercial) avec un autre formulaire (sous formulaire) qui lui est attaché, qui
affichera la liste des entreprises correspondantes. Le fait de travailler sur des champs appartenant à 2
tables induit l’utilisation de 2 formulaires.
Le cas de l’âge est particulièrement représentatif puisqu’il évolue à chaque ouverture de la base ; il faut le
recalculer à chaque accès aux données. Le formulaire sera chargé de gérer ces valeurs par la mise en place
d’une zone de texte indépendante pour le calcul (et l’affichage) de l’âge du commercial à partir de sa date
de naissance.
1. Dans le formulaire Saisie commerciaux ajouter une zone de texte sous la photo en supprimant l’étiquette,
accéder à la fenêtre Propriétés – Données – Source contrôle, de la zone de saisie indépendante, cliquer
sur le bouton … pour accéder au générateur d’expression,
taper la formule suivante et refermer en validant les différentes fenêtres de la modification du formulaire
= Date()-[Date_naissance] puis OK (affiche la différence entre la date du jour et la date de
naissance).
ouvrir le formulaire en saisie et observer le résultat. La valeur affichée (l’âge) est en nombre de jours.
Pour le convertir en nombre d’années compléter la formule :
= Format(Date()-[Date_naissance] ; "yy" ;2 ;2) (ou "aa" si ça ne fonctionne pas)
Format() transforme le résultat en chaîne de caractères,
"yy" en appliquant le format "yy", c'est-à-dire l’année seule sur 2 chiffres
2 ;2 sert à normaliser la date par rapport aux conventions françaises
ouvrir le formulaire en saisie et observer le résultat.
compléter à nouveau la formule
= "Age : "&Format(Date()-[Date_naissance] ; "yy" ;2 ;2)&" ans"
& est un opérateur de concaténation de chaînes (met bout à bout des chaînes de caractères)
attention au « : » et aux espaces après « Age » et avant « ans »
ouvrir le formulaire en saisie et observer le résultat (vérifier que l’ordinateur soit à la bonne date).
Refermer
D’autre part, lorsque l’on effectue un tri par activité (par exemple), cela s’appelle une
opération de regroupement. Associés à cette requête de regroupement, plusieurs calculs
peuvent être réalisés : Somme, Moyenne, Min, Max, Compte, EcartType, Var. Il est ainsi
possible de déterminer le « nombre de … par … » grâce à l’opération de regroupement sur un
champ et à celle de comptage sur l’autre.
Lors de la création ou de la modification d’une requête il est possible de définir une de ces
opérations sur un champ en sélectionnant le bouton Totaux qui ajoutera la ligne Opération
entre les lignes Table et Tri. Il reste ensuite à affecter l’opération choisie dans le champ
correspondant.
La requête qui suit sert à déterminer le nombre de clients par département. Or l’information
« Département » n’existe pas dans la table Clients ; elle va donc être extraite du champ Code_postal et
définir le champ Département. Un regroupement sera alors mis en place sur ce champ et un comptage sur
le champ Nom_client
2. Ouvrir Mabase10.
3. Créer une nouvelle requête qui s’intitulera Nombre par departement à partir de la table Clients.
4. Dans la 1ere colonne va figurer le département obtenu par extraction des 2 premiers caractères à gauche du
code postal, ce qui donne, pour la cellule Champ :
Departement: Gauche([Code_postal];2)
dans lequel :
Departement: donne le nom « Departement » à la colonne
Gauche([…];2) extrait les 2 caractères à gauche du champ
[Code_postal] désigne le champ concerné
5. Dans la 2ème colonne va figurer le nombre de client par département, ce qui donne, pour la cellule
Champ :
Nombre: Nom_client
Choisir pour la ligne Table : Clients (colonne 2 uniquement – le champ 1 ne correspond pas à un champ
de la table Client mais à des données extraites du champ Code_postal de cette table)
6. Pour faire apparaître la ligne Opération : cliquer sur le bouton Totaux Σ de la barre d’outils. Choisir
pour la 1ère colonne Regroupement et pour la seconde Compte
7. Choisir enfin un tri croissant pour la colonne Département
8. Refermer la fenêtre, exécuter la requête, observer le résultat, refermer
10.3 Regroupement dans un état
A savoir : le concept de regroupement ne se limite pas aux requêtes, il peut s’appliquer directement aux
états.
Réalisation d’un état qui affiche, pour chaque commercial, la liste des noms des entreprises dont il est
chargé. La relation qui rattache les tables Clients et Commerciaux au travers du champ Ref_comm va
permettre d’effectuer correctement cette tâche.
Les états Clients par activité et Clients par commercial exploitent des requêtes de regroupement. Il est
donc possible d’y adjoindre des calculs.
11.1 Préalables
1. Ouvrir MaBase12
4. Pour faire correspondre exactement l’image à la zone quadrillée, choisir dans Propriétés (de l’image)
Mode d’affichage : Zoom
5. Ajouter une étiquette avec le texte Mon Entreprise approximativement au milieu de l’image, valider,
essayer ensuite de la sélectionner, c’est impossible. Annuler l’ajout à l’aide du bouton Annuler.
6. Ajouter une étiquette avec le texte Mon Entreprise, en partie sur la zone quadrillée afin de pouvoir la
sélectionner pour son paramétrage :
Largeur : 12 cm
Hauteur : 2,2 cm
Haut : 1 cm
Gauche : 2 cm
Style de fond : Transparent
Epaisseur bordure : 2 pt
Couleur bordure : #000080 (bleu foncé)
Police : Times New Roman
Taille de police : 48
Aligner texte : Centre
Epaisseur de police : Gras
Italique : Oui
Couleur texte : noir
Une fois le paramétrage terminé, pour sélectionner l’étiquette (si nécessaire) cliquer dans l’image puis
Propriétés et sélectionner en haut Etiquette 1 (chaque ajout ou tentative d’ajout incrémente le n°, vous
pourrez donc avoir Etiquette2, Etiquette3, …) ou dans l’onglet Outils de création de formulaire, onglet
Format, à gauche.
7. Enregistrer le formulaire sous le nom frm_Standard.
8. Sélectionner le formulaire frm_Standard et, à l’aide du Copier-Coller, en faire 4 copies intitulées :
frm_Accueil
frm_Saisies
frm_Consultations
frm_Impressions
11.3 Boutons de commande
A savoir : le bouton de commande est une zone spécifique qui déclenche une action. C’est ce que l’on
trouve dans toutes les fenêtres avec les boutons tels que « Ouvrir », « Valider », « Quitter »,
etc.
Dans la boîte à outils, il existe un élément intitulé Bouton de commande qui joue ce rôle. Il
pourra être affecté à diverses actions, sur divers objets, et associé à un logo particulier.
11.4 Création des formulaires de gestion de l’application
Le formulaire frm_Accueil comportera 4 boutons de commande :
le bouton Saisies ouvrira le formulaire frm_Saisies
le bouton Consultations ouvrira le formulaire frm_Consultations
le bouton Impressions ouvrira le formulaire frm_Impressions
et le bouton Quitter pour quitter l’application.
Le formulaire frm_Saisies comportera 5 boutons de commande :
le bouton Saisies activités ouvrira le formulaire frm_Saisie_activites
le bouton Saisie clients ouvrira le formulaire frm_Saisie_clients
le bouton Saisie commerciaux ouvrira le formulaire frm_Saisie_commerciaux
le bouton Affectation référent ouvrira le formulaire frm_Saisie_referent
et le bouton Retour Accueil pour refermer le formulaire (et retourner au formulaire d’accueil).
Le formulaire frm_Consultations comportera 3 boutons de commande :
le bouton Consultation commerciaux ouvrira le formulaire frm_Consultation_commerciaux
A savoir : dans un formulaire de consultation il ne faut pas pouvoir modifier le contenu des champs, de
même dans les formulaires de saisie, pour certains champs. Pour cela, pour les champs
concernés accéder à Propriétés – Données – Verrouillé, le définir à Oui. Il est aussi possible
de bloquer l’accès globalement à tous les champs du formulaire en accédant aux propriétés du
formulaire (clic droit dans la partie grisée à droite) : Propriétés – Données – Verrouillage,
défini à Général.
20. S’assurer que les champs concernés des formulaires de consultation sont bien verrouillés.
21. Pour supprimer les zones en gris autour de l’image ouvrir chacun des formulaires en modification, cliquer
sur la zone grisée à droite, puis Propriétés, modifier les paramètres suivants :
Barre de défilement : Aucune
Afficher le sélecteur : Non
ainsi que
Bouton de déplacement : Non
Diviseur d’enregistrement : Non
pour chaque formulaire : l’ouvrir, observer, faire les modifications, ouvrir de nouveau et observer les
différences.
11.5 Démarrage de l’application
22. Choisir dans l’onglet Fichier – Options – Base de données active – Option des applications,
Titre de l’application : Mon entreprise,
Icône de l’application : Icône.bmp (type de fichier Bitmap) dans votre dossier
Utiliser comme icône de formulaire et d’état
Afficher formulaire/page : frm_Accueil
puis OK
refermer la fenêtre puis Access (en validant éventuellement)
Ouvrir Mabase12, observer le bon fonctionnement des éléments mis en place. L’environnement de travail
habituel reste en place. Le bouton Quitter quitte l’application en refermant Access.
A savoir : pour accéder à la base de données en modification au démarrage, maintenir la touche Maj
(Shift) du clavier enfoncée en cliquant sur l’icône de Mabase12.
A savoir : l’icône mis en place est interne à la base, il apparaît dans le coin en haut à gauche des
fenêtres. A l’aide des outils Photophiltre et IcoFX (ou ceux de votre choix), cités en annexes
vous pourrez créer des icônes pour modifier celui de votre dossier ou du raccourci accédant à
votre base. A ma connaissance il n’est pas possible (aisé) de modifier l’icône d’un fichier.
L’option Ouvrir permet d’accéder au contenu de la table : les enregistrements, pour procéder
à des ajouts, des suppressions, des modifications. Cette pratique est fortement déconseillée.
Il est recommandé d’accéder au contenu de la table au travers de formulaires.
Des opérations de recherche, de tri, de filtrage peuvent être directement exécutées sur la table,
ce qui est très risqué car aucun contrôle n’est exercé sur ces manipulations. Le contenu de la
table apparaît sous forme de tableau : chaque ligne correspond à un enregistrement, chaque
colonne correspond à un champ. Toute opération effectuée sur le contenu de la table est
directement enregistrée dans le fichier (sur le disque) sans demande de validation (d’où le
risque).
Sur la gauche désigne un nouvel enregistrement.
En bas de la table sont affichés des boutons qui permettent de se déplacer dans la base
4. Sélectionner la table Tbl_Judokas (clic droit) puis Mode création (simple clic gauche). Observer le
résultat, remarquer les noms de champ, les différents types de données.
5. Cliquer (simple clic gauche) sur chaque nom de champ et observer les propriétés correspondantes (partie
inférieure, onglet Général), en essayant de déterminer leur fonction. Refermer (case de fermeture en haut
à droite de la fenêtre Tbl_Judokas). Observer de même la structure et le contenu des 2 autres tables.
6. Sélectionner Ouvrir (clic droit) pour la table Tbl_Judokas et observer le contenu en faisant le lien avec le
paramétrage de la table, vu précédemment. Un enregistrement correspond à une ligne (un judoka), un
champ correspond à une colonne (la date de naissance). Ajouter un 3ème « t » au nom « Schmitt » sans
validation, Refermer la table. Ouvrir de nouveau la table, la modification a été enregistrée sans message
d’avertissement. Rectifier le nom.
7. Cliquer une fois dans la cellule en tête de colonne intitulée Nom. La colonne
ainsi sélectionnée apparaît en noir. Rechercher dans la barre d’outils le bouton
intitulé Croissant et cliquer une fois dessus. Observer le résultat, ce n’est pas
uniquement le contenu de cette colonne qui a été réorganisé, mais l’ensemble
des champs. Sélectionner la colonne Code_judoka et cliquer sur Tri croissant.
Observer le résultat. La table est revenue à son état initial, elle peut donc être
refermée (enregistrée ou non) car son contenu est identique à celui de départ. Refermer la fenêtre. Une
demande de confirmation d’enregistrement des modifications sera affichée (du fait des tris réalisés),
valider.
12.2 Les Formulaires
A savoir : le formulaire peut être considéré comme l’interface privilégiée entre l’utilisateur et les
données. Il permet de limiter les possibilités d’action sur les données, de n’afficher que celles
qui sont utiles, de présenter les données sous une forme adaptée, de tester les informations
entrées avant de les enregistrer, etc.
Leur mise en œuvre globale est identique à celle des tables (options Ouvrir et Mode création).
Le paramétrage du contenu des formulaires est délicat. Heureusement un assistant de création
pourra vous guider dans la création des premiers formulaires.
La fenêtre de modification comporte, dans sa partie haute, la ou les tables concernées par cette
requête et, dans la partie basse, les champs ainsi que les opérations de tri et les critères de
sélection associés.
11. Sélectionner dans le type d’objets Requêtes, la requête Qry_Classement par âge en mode création.
Observer le contenu : les données proviennent de la table Tbl_Judokas, seuls les champs Nom et
Date_naissance sont affichés, penser que cette requête sert à obtenir un classement par âge (obtenu par le
tri croissant sur la date de naissance, donc du plus vieux au plus jeune) puis refermer.
12. Exécuter la requête Qry_Classement par âge par un double clic, observer puis refermer.
13. Procéder de même avec la requête Qry_Classement alphabétique. C’est la requête Qry_Judokas, basée
sur ce principe qui est utilisée pour que le formulaire Frm_Consultation affiche les judokas dans l’ordre
alphabétique.
12.4 Les Etats
A savoir : les états servent à imprimer des documents. Ils utilisent essentiellement les requêtes pour
définir précisément leur contenu. Le paramétrage de leur mise en forme est très semblable à
celui des formulaires.
14. Sélectionner dans le type d’objets Etats, la requête Rpt_Liste par ceinture en mode création, observer le
contenu puis refermer.
15. Ouvrir par un double clic l’état Rpt_Liste par ceinture, observer l’aperçu puis refermer.
12.5 Les Relations
A savoir : les tables peuvent être reliées entre elles par une relation, c’est à dire qu’un champ de l’une
correspond à un champ de l’autre (une facture est associée à un client, un judoka a atteint un
niveau – une ceinture). Ces relations (liaisons) peuvent être affichées par le menu Outils de
base de données – Relations.
Lorsque, dans une table, apparaissent des + à côté de la colonne du sélecteur d’enregistrement
(colonne de gauche), c’est qu’une autre table est liée à celle-ci. Il est alors possible d’afficher
les enregistrements correspondants de l’autre table (un clic sur le + pour afficher les éléments
liés, un clic sur le – pour refermer la fenêtre correspondante).
La liaison se fait rarement sur la donnée elle-même. Il est conseillé de l’établir sur un code
associé à cette donnée.
L’intérêt de ce procédé est multiple ; économie de place, facilité de mise à jour, etc.
16. Aller dans le menu Outils de base de données – Relations pour afficher la fenêtre des relations. Au champ
Code_ceinture de la table Tbl_Ceintures est associé le champ Code_ceinture de la table Tbl_Judokas.
puis refermer.
17. Ouvrir la table Tbl_Ceinture par un double clic, cliquer sur les symboles + . Observer les judokas
associés à chaque couleur puis refermer.
18. Remarquer que la couleur (texte et numéro associé) de chaque ceinture figure une seule fois dans la base.
Pour les judokas c’est un code de couleur de ceinture qui est utilisé (le vérifier en ouvrant la table
Tbl_Judokas) puis refermer.
19. Ouvrir le formulaire Frm_Consultation. Remarquer que, à côté de « Ceinture », ce n’est pas le code de
couleur de la ceinture qui est affiché mais sa couleur. Grâce à la liaison le logiciel est allé chercher dans la
table Tbl_Ceintures le texte et le numéro de couleur correspondants puis refermer.
20. Tout refermer et quitter Access.
Texte : ce type (par défaut) est le plus souvent utilisé. Il peut accepter jusqu’à 255 caractères
Mémo : un champ Mémo peut contenir jusqu’à 65535 caractères. Il sert de bloc de commentaires ou
de notes.
Numéroauto : un champ NuméroAuto est une valeur entière longue générée automatiquement pour
chaque nouvel enregistrement. La propriété Nouvelle valeur permet de choisir entre incrément
et aléatoire.
Oui/Non : type logique (boolean) correspond à la valeur –1 pour Oui (True) et à 0 pour Non. La
propriété Format permet d’afficher Oui/Non, Vrai/Faux, ou Actif/Inactif.
Monétaire : format fixe spécifique comprenant quatre chiffres après la virgule. Il évite les erreurs
d’arrondi qui seraient catastrophiques dans les opérations comptables
Date et Heure : un grand choix de formats est proposé à l’affichage mais les dates et les heures sont
stockées dans un format fixe spécifique. La date correspond à la partie entière de la valeur
complète, et l’heure à la partie fractionnaire.
Nombre
Sous-type Plage de valeurs
d’octets
Décimal -10-28 à 1028-1 14
Octet 0 à 255 1
-9 922 337 203 685 477,5808 à
Monétaire 8
9 922 337 203 685 477,5808
\ à placer avant l’un des symboles précédents pour insérer le caractère littéralement dans la
chaîne