Documente Academic
Documente Profesional
Documente Cultură
page
Le Portail http://www.ista.ma Que vous soyez tudiants, stagiaires, professionnels de terrain, formateurs, ou que vous soyez tout ue simplement intress(e) par les questions relatives aux formations professionnelle aux mtiers, professionnelle, http://www.ista.ma vous propose un contenu mis jour en permanence et richement illustr avec un suivi
quotidien de lactualit, et une varit de ressources documentaires, de supports de formation ,et de documents en ligne ( supports de cours, mmoires, exposs, rapports de stage ) .
Le site propose aussi une multitude de conseils et des renseignements trs utiles sur tout ce qui concerne la recherche d'un emploi ou d'un stage : offres demploi, offres de stage comment rdiger stage, sa lettre de motivation, comment faire son CV, comment se prparer l'entretien dembauche etc. dembauche, Les forums http://forum.ista.ma sont mis votre disposition, pour faire part de vos expriences, ragir l'actualit, poser des question questionnements, susciter des rponses.N'hsitez pas interagir avec 'hsitez tout ceci et apporter votre pierre l'difice. r Notre Concept
Le portail http://www.ista.ma est bas sur un concept de gratuit intgrale du contenu & un modle collaboratif qui favorise la culture dchange et le sens du partage entre les membres de la communaut ista.
Notre Mission
Diffusion du savoir & capitalisation des expriences.
Notre Devise
Partageons notre savoir
Notre Ambition
Devenir la plate-forme leader dans le domaine de la Formation Professionnelle.
Notre Dfi
Convaincre de plus en plus de personnes pour rejoindre notre communaut et accepter de partager leur lus savoir avec les autres membres.
Objectifs
Savoir crer une base de donne daprs un Modle Logique des Donnes fourni. Etre capable de dvelopper une application ACCESS . En particulier crer des formulaires de saisies et de consultation. Organiser lensemble en une application cohrente. Ltude des modules Visual Basic ne fait pas partie de cette premire approche
Mode demploi
Pour chacun des thmes abords, ce support de formation : prsente les points essentiels renvoie des supports de cours, des livres ou la documentation en ligne constructeur, par le
symbole :
Manipulation raliser avec un utilitaire graphique (qui devrait normalement simplifier le travail !)
Approfondissement : travail de documentation ou exercice supplmentaire, faire individuellement (non intgr dans le temps de formation moyen)
Lectures conseilles
Support de cours AVENIR CONSULT. ACCESS au quotidien (Microsoft press).
page
Sommaire
1. ACCESS : Deux produits en un ___________________________________________ 4
1.1. Le Sgbd JET. _____________________________________________________________ 4 1.2. Le Gnrateur dapplication. ________________________________________________ 4 1.3. Les passerelles. ____________________________________________________________ 4
2.
3. 4.
4.3. Formulaires orients affichage. _____________________________________________ 20 4.4. Formulaires orients recherche. _____________________________________________ 21
5. 6. 7.
Crer des tats _________________________________________________________ 22 Les macros ___________________________________________________________ 24 Organiser lapplication _________________________________________________ 28
7.1. Dcider dun ensemble cohrent de formulaires._______________________________ 28 7.2. Crer une barre de menu. __________________________________________________ 28
8. 9.
Le code Visual basic appliqu ACCESS. __________________________________ 31 Crer des pages WEB. __________________________________________________ 32
10.1. 10.2. 10.3. 10.4. 10.5. Loriginalit dACCESS._________________________________________________ 33 Transactions et verrouillages. _____________________________________________ 33 Contrles daccs. ______________________________________________________ 33 Aspects multiutilisateurs. ________________________________________________ 33 Domaines dusage privilgi dACCESS. ___________________________________ 34
page
APPLICATION
ACCESS
VISUAL BASIC
C++
JAVA
INTERFACE
Native
ODBC
SGBD
JET
page
ACCESS et VISUAL BASIC accdent soit au SGBD JET, soit des SGBD puissants et multiutilisateurs, via linterface de programmation ODBC. ACCESS peut galement rcuprer des donnes en provenance dautres bases bureautiques telle DBASE, ou des portions de feuilles EXCEL correctement prsentes, et mme du texte tabul, dans ce dernier cas, bien sur, il est prudent de contrler les donnes rcupres. Le menu donnes externes / importer permet de recopier dans ACCESS des donnes rcupres de vieilles bases. Le menu donnes externes / lier permet de lier une application ACCESS un gros serveur SGBD, via ODBC, pour un travail en client serveur. Le menu exporter permet de recopier des donnes ACCESS vers un autre SGBD.
page
page
Lutilisation de cette interface est intuitive. Attention aux types de donnes numriques pour lesquels il existe plusieurs sous types.
page
Bien vrifier les noms des champs lis. Pour une contrainte portant vers une clef primaire composite, ajouter des lignes au prsent tableau. Cocher la case Appliquer lintgrit rfrentielle Pour aider au maintien de lintgrit rfrentielle ACCESS propose deux options : Mettre jour en cascade ; cest dire rpercuter les modifications des valeurs de clefs primaires vers les tables dpendantes. Cette option parfois utile ne doit tre active quaprs rflexion : dans mon application est il parfois ncessaire de changer la valeur dune clef primaire ? . Dans la ngative il est prfrable de ne pas activer cette option. Supprimer en cascade ; cette option est dangereuse en cas derreur de manipulation.
Lorsque tout est termin on obtient une image du modle logique que lon pourra imprimer :
page
De fait ACCESS utilise ce schma deux fins : Dfinir les contraintes dintgrit rfrentielles. Proposer des conditions de jointure par dfaut pour le gnrateur de requte (voir plus loin). Lexprience vous a en effet sans doute montr que dans les requtes les conditions de jointure suivent souvent les lignes de contraintes dintgrit rfrentielle.
Vous tes cependant convi ne pas confondre ces deux notions. Le terme relation utilis par Microsoft prte confusion. Sur les liaisons le symbole 1 dsigne la clef primaire et le signe infini la clef trangre, rien de plus. Ne cherchez pas rapprocher ces conventions des cardinalits du MCD. Les tables Employes et Pieces ne sont pas dupliques, il sagit ici dune manire de dessiner choisi par Microsoft ACCESS.
page
Lune des premires taches que vous rencontrerez sera de dfinir les requtes ncessaires. Pour dfinir une nouvelle requte, dans longlet requte utiliser lassistant : crer une requte en mode cration ; vous pourrez ensuite : Soit taper votre requte dans la fentre texte SQL Soit utiliser le gnrateur graphique, ce gnrateur pratique dans les requtes simples, ne suffit pas pour des requtes complexes.
Manipulation avec assistant graphique
Nous vous proposons trois exercices : Exercice 02 : Requte Dpartement et Chef Indiquer pour chaque dpartement (numro et nom), les numro, nom et prnom du chef
page
10
Essayer de basculer en affichage / SQL pour voir le code SQL gnr, noter que ACCESS utilise la syntaxe SQL92 . Il est toujours prudent de relire ce code SQL gnr. Lorsque vous enregistrerez cette requte donner un nom vocateur. Une bonne habitude sera galement de prfixer chaque objet pour indiquer son type ici par exemple on peut nommer la requte :RqDeptChef. Exercice 03 : Requte pices et ouvriers habilits
Pour chaque pices afficher : Classe et rfrence de la pice. Numro,nom et prnom des employs habilits sur cette pice.
Exercice 04 : Employ et Chef Pour chaque employs, afficher le nom de son chef. Cette exercice vous conduira introduire deux fois la table employ dans la clause FROM ; vous devrez alors distinguer ces deux usages par des alias.
page
11
Utiliser dans longlet formulaire crer un formulaire avec lassistant . Nommer ce formulaire FormEmploys, par exemple. Regarder ce qui a t gnr.
4.1.1. Regarder en mode donnes (ouvrir). Noter que le formulaire permet de se dplacer de ligne en ligne dans la table Employs. Il permet de lire, mais aussi de modifier et dajouter. Nous verrons plus loin quil est possible dinterdire les ajouts et mises jour. Bien noter que les donnes entres sont valides soit : Lorsque lon change de ligne Lorsque lon ferme le formulaire. Lorsque lon clique explicitement sur enregistrement / sauvegarder lenregistrement.
page
12
Ce dessin montre la structure du formulaire, le formulaire est un objet qui contient lui mme dautres objet, appels aussi contrles pour les objets daffichage et de saisie.
13
page
Les proprits du formulaire sont visibles et modifiables, par un clic droit dans langle haut gauche, on obtient :
La proprit capitale cest la source des donnes, il sagit dune table ou dune requte SELECT. Chaque champ possde galement des proprits que lon peut obtenir par un clic droit dans ce champ :
Les deux proprits capitales sont : Le nom de lobjet. Sa source, il sagit dun champ de la table ou de la requte source du formulaire. Cest dans la source que ACCESS va chercher la valeur afficher. Cest galement vers la source que ACCESS recopie une valeur saisie ou modifie. Si la source nest pas renseign, le contrle est dit indpendant. Par dfaut lassistant donne lobjet le mme nom que la source, cest une simplification mais cele prte confusion. Renommer soigneusement vos objets en les prfixant. Dans ACCESS vous manierez un grand nombre dobjets, une stratgie de nommage systmatique est indispensable.
page
14
4.1.3. Choisir le dpartement dans une liste. Chaque fois que possible, proposer loprateur les valeurs autorises dans une liste. Si vous avez bien dfini votre table employs, lassistant cre un contrle liste droulante pour la saisie du dpartement. Regardons les proprits de cet objet :
Nom est le nom de lobjet, respecter des conventions de nommage Source contrle est le champ de la base de donnes o la valeur saisie par loprateur sera recopi. Origine source indique o il faut chercher les valeurs proposes dans la liste, ici il sagit dune table, ne pas confondre cette notion avec la prcdente. Contenu est le nom de la table utiliser, ici dpartement ; ce pourrat galement tre une requte. Nbre colonnes est le nombre de colonne afficher. Colonne lie est le numro de colonne conserver, ici 1, le numro du dpartement. 4.1.4. Exprimenter filtrer par formulaire.
Loprateur peut filtrer les rsultats du formulaire par exemple pour lister les employs dun dpartement. Essayer filtrer par formulaire, on obtient le dessin ci aprs :
page
15
Chaque contrle permet donc de fixer les critres de recherche, ACCESS propose des listes droulantes partout fondes sur les valeurs existantes. Un clic sur activer le filtre permet dobtenir les lignes recherches :
Regarder bien ces divers crans pour ne pas les confondre : dans lcran filtrer par formulaire on frappe des critres de recherche, dans lcran ci dessus, une frappe ou une slection dans une liste va provoquer une modification des donnes dans la base.
page
16
Crer un sous formulaire fond sur la table des habilitations et linclure dans le formulaire FormEmploys de manire afficher pour chaque employ la liste des pices quil est habilit assembler. Vous devrez obtenir ce rsultat :
4.2.1. Structure dun ensemble formulaire / sous formulaire. Un sous formulaire est un contrle dont la source est elle mme un formulaire. Dans cet exercice, nous nommerons ce contrle : CadreHabilitation et le formulaire source SFormHabilitation. Le contrle CadreHabilitation limite laffichage de SFormHabilitation par un lien pre- fils, ici on impose : mme numro demploy. Larchitecture de lensemble peut tre reprsent par le schma :
page
17
SFormHabilitation
Source
Table Employs
Table EstHabiliteA
NB : Lorsque vous utilisez un assistant, celui ci donne le mme nom aux objets CadreHabilitation et SFormHabilitation. Ceci est une simplification mais gne la comprhension du mcanisme. La barre de dfilement du bas permet de parcourir les employs, vous devez observer que laffichage du sous formulaire se met jour automatiquement. Seules les pices sur lesquelles lemploy est habilit sont affiches. Le systme fonctionne galement en criture, si vous ajoutez une nouvelle ligne dans le sous formulaire, ACCESS rajoute une ligne dans la table EstHabilitA en utilisant le numro demploy du formulaire principal. Vous pouvez perfectionner lensemble en permettant de choisir la Rfrence Pice dans une liste. Finalement le travail de remplissage de la table EstHabilitA devient facile 4.2.2. Construire un ensemble formulaire / sous formulaire. Il existe plusieurs mthodes pour construire un ensemble formulaire / sous formulaire. Nous vous proposons, non pas la plus rapide, mais celle qui permet de bien comprendre larchitecture de lensemble : Construire le formulaire principal, FormEmploys ,ici cest dj fait, vous pouviez utiliser lassistant. Construire ce qui deviendra le sous formulaire SformHabilitation , vous pouvez utiliser lassistant. Ajouter FormEmploys un contrle sous formulaire, vous pouvez utiliser lassistant.. Vrifier les proprits de contrle sous formulaire en cliquant dans son angle suprieur gauche. Attention la manipulation peut sembler confuse :
page
18
1. si vous cliquer dans le formulaire principal puis dans langle du sous formulaire, vous obtenez bien les proprits du contrle sous formulaire et nous en profiterons pour le renommer : CadreHabilitation ; 2. si vous cliquer dabord dans le sous formulaire puis dans son angle, vous obtenez les proprits du formulaire source SformHabilitation, ce qui nous intresse moins. Voici lensemble en mode cration :
page
19
Les proprits intressantes sont : Nom : nom du contrle sous formulaire qui encadre un formulaire et le contraint limiter son affichage selon le critre pre fils. Objet source : nom du formulaire contrl par le cadre ci avant. Champ pre, champ fils : nom des champs dans le formulaire et le sous formulaire, dont les valeurs doivent tre maintenues gales. Il sagit ici des noms de champs des tables sous jacentes aux formulaires. Exercice 07 : Pices et composants
Faire de mme un ensemble formulaire / sous formulaire permettant de saisir, et de rafficher, les pices et leurs composants.
4.2.3. Conclusions intermdiaires. Les formulaires, tudis jusqu prsent, permettent de faciliter le peuplement de la base, ici les tables Employs, EstHabilitA, Pices, SeComposeDe. Ils sont donc autoriss en lecture, ajout, modification, suppression Dautres sries de formulaires seront consacres aux recherches dinformations. Elles ne seront donc autorises quen lecture.
page
Exercice 11 : Filtrer par lien pre fils. Ceci est la meilleure solution. Crer un formulaire pre qui contiendra un champ de saisie ( ou mieux une liste droulante) pour le dpartement vis. Attention le formulaire, le champ de saisie ou la liste droulante nont pas de source associes, ils sont indpendants. Nommer votre champs de saisie. Tirer votre formulaire employs dans le pre pour en faire un sous formulaire. Dfinir le lien pre fils Nous verrons plus loin dautres techniques mais qui ncessitent des macros.
page
21
Exercice 12 : Afficher un tat complet du personnel et de ses habilitations Bien sur la prsentation se fera par dpartement puis par employs. Voici ce quil faudra obtenir :
Pour ce faire on commencera par tablir une rqute capable de fournir toutes les donnes ncessaires. Donc il faut joindre les tables Dpartement,Employs,EstHabilitA,Pices Puis on utilisera lassistant tat en fondant ltat sur cette requte. En principe lassistant propose de lui mme les regroupemnts. En mode cration on obtient donc :
page
22
Bien regarder les groupes gnrs. Regarder les proprites de ltat, ouvrir la fentre trier et grouper.
page
23
6. LES MACROS
Dans les exercices tudis jusquici ACCESS savait ce quil devait faire selon les manipulations de loprateur, par exemple slectionner correctement les enregistrements dun sous formulaire. Tout tait automatique. Les exercices que nous allons voir maintenant sont plus complexes, et il faut indiquer ACCESS ce quil doit faire. La logique est vnementielle : vous avez peut tre remarque dans la fentre proprit une liste dvnements (aprs mise jour, sur clic, sur activation etc.), le principe de la programmation vnementielle est de dfinir pour chaque vnement que lon souhaite traiter un petit programme excuter. Deux langages sont disponibles : le langage macro et le langage Visual Basic. Dans les cas simples le langage macro suffit. Ce langage est spcifique dACCESS car les actions entreprendre sont des actions ACCESS. Exercice 13 : Rfrencer un champ de saisie dans une requte paramtre. Nous allons ici reprendre lide de lexercice 10 en introduisant dans la requte paramtre une rfrence un champ de saisie du formulaire : on doit obtenir SELECT Employes.NumSecu, Employes.Nom, Employes.Prenom, Employes.NumDepartement FROM Employs WHERE (((Employes.NumDepartement)=[Formulaires]![FormEmpDuDept4]![ListDept])); Regarder bien la syntaxe de la zone soulignes. Formulaires dsigne la collection de tous les formulaires que vous avec cres. FormEmpDuDept4 est un nom de formulaire. ListDept est un nom de champ du formulaire. Vous pouvez galement gnrer cela en mode graphique en vous aidant de lassistant magicien. Cliquer sur la baguette magique dans la barre doutils.
page
24
Slectionner le formulaire qui vous intresse puis le champ, le gnrateur syntaxique fera le reste. Voici le formulaire obtenir obtenir en cration
page
25
Noter bien que la liste de choix est dans la zone entte du formulaire et quelle est indpendante. Nous pourrions penser que grce notre requte le formulaire afficherait les bons employs, en fait cela ne marche pas. Il faut en effet dire ACCESS que chaque fois que loprateur saisi un nouveau dpartement la requte doit tre rexcute. Ici ACCESS ne le fait pas de lui mme. Lvnement qui nous intresse concerne lobjet ListDept et lvnement considrer est Aprs MAJ. Associer cet vnement une macro dont la seule action sera actualiser, sans prciser de champ ici. Exercice 14 : Rajouter un filtre une requte Une variante de cet exercice consiste ne pas mettre de clause WHERE la requte. Cette clause sera ajoute de manire dynamique comme suite lvnement aprs MAJ sur lobjet ListDept. Nous allons dfinir une macro dont laction sera appliquer filtre. Appliquer un filtre revient donc ajouter une clause WHERE une requte. Assez bizarrement il faut prcder cette action dune action actualiser.
page
26
Revenons la cration dun dpartement. Dans un premier temps nous avons convenu de ne pas dfinir de suite le chef. Ensuite nous crons les employs. Maintenant nous pouvons nommer le chef. Vous allez faire le formulaire adquat. Bien sur il serait intressant de choisir pour chef un employ de ce dpartement. Vous allez donc crer une liste droulant affichant les employs du dpartement. Voici ce quil faudrait obtenir :
La liste droulante aura pour requte contenu : SELECT Employes.NumSecu, Employes.Nom, Employes.Prenom FROM Employs WHERE (((Employes.NumDepartement)= [Formulaires]![FormNommerChefDepartements]![TxtNumDepartement])); Tout comme dans lexercice 12, il faut demander lactualisation de cette liste chaque fois que lon change de dpartement, donc de ligne dans le formulaire. Cela correspond lvnement sur activation du formulaire lui mme. Cette fois dans la macro pour laction Actualiser il faudra prciser le champs nouveau chef
page
27
7. ORGANISER LAPPLICATION
7.1. Dcider dun ensemble cohrent de formulaires.
Dans cette initiation nous avons explor les possibilits dACCESS. Dans un vrai projet, il faut commencer par dfinir de manire logique et cohrente lensemble des formulaires ncessaires. Typiquement on ralise : Les formulaires qui permettent de remplir la base. Les formulaires qui permettent de visualiser les infos les plus couramment demandes.
Ces deux catgories assurent en quelques sortes lintendance du systme dinformation. Ensuite il faut dfinir les formulaires qui doivent effectuer les traitements requis tels quils apparaissent lissue de lanalyse. Lobjet mme de lactivit de lentreprise. Il est possible que ces besoins se recoupent avec ceux dj identifis plus haut.
Dune manire gnrale, il est prudent de sparer les formulaires de saisies et les formulaires de consultation, les oprateurs sont souvent diffrents.
La procdure est assez complexe mais puissante, nhsitez pas utiliser laide en ligne. Crer un formulaire indpendant qui sera la page daccueil. Aller dans Affichage ->Barre doutil->personnaliser->Barre doutils.
page
28
Cliquer sur nouvelle. Donner un nom votre barre de menu. Aller dans proprits et dfinir : type barre de menu :
Remarquer que votre menu est visible sous forme dun petit carr, visible sur lcran pas sur ce polycopi. Revenir dans lcran ci avant pour choisir longlet commande. Choisir : tous les formulaires .
page
29
Cliquer sur le formulaire qui vous intresse et le tirer vers le menu. Par un clic droit sur le bouton cr, accder ses proprits.
Pour crer des menus droulant il fallait au pralable insrer des nouveaux menus dans le menu principal. Lorsque le menu est termin il suffit de laffecter au formulaire daccueil. Ds que le formulaire daccueil est ouvert votre menu remplace le menu ACCESS. Il ne reste plus qu demander louverture de votre formulaire daccueil au dmarrage, voir outils -> dmarrage.
page
30
page
31
page
32
ACCESS permet de dvelopper des applications sans code, donc sans algo. La connaissance dun langage de programmation nest pas ncessaire. Cest donc en principe un outil pour non informaticien, mais des comptences danalyse sont requises. La prise en main de loutil ncessite galement une formation. Le dveloppement est trs rapide. Cependant dans des cas complexes, des difficults risquent dapparatre. Nous allons les examiner ci aprs.
10.2.
Transactions et verrouillages.
Lexamen de ce point dlicat sort du cadre de cette initiation. Cependant ACCESS est faible de ce point de vue, et il importe donc den comprendre les limitations. Lemploi dobjets lis aux donnes, implique des mises jour automatiques des donnes. Ces mises jour ne concernent quune ligne de donnes dans une seule table la fois. Il nest donc pas possible de crer de transaction comportant plusieurs requtes. Du point de vue verrouillage, ACCESS pratique un verrouillage optimiste, cest dire quil ne verrouille pas les donnes affiches. En revanche si vos donnes sont modifies par un autre utilisateur, vous recevrez un message derreur si vous tentez vous mme de modifier la mme ligne. ACCESS est donc dconseill pour des applications o les aspects transactions et verrouillages doivent tre grs avec rigueur : virements bancaire, rservations de places train ou avion par exemple. Il est possible de traiter correctement ces aspects en sabstenant de crer des objets lis aux donnes et en effectuant les mises jour par du code Visual Basic. Mais alors leffort de dveloppement est le mme que pour une application VB traditionnelle.
10.3.
Contrles daccs.
Le SGBD JET dispose de protections, il est possible des dfinir des utilisateurs. Cependant ces aspects sont moins volus que dans les serveurs SGBD type ORACLE. Il est possible de corriger cette lacune par une architecture Client / Serveur qui permet de remplacer JET par un SGBD plus performant, tout en conservant les possibilits de gnration dapplication de ACCESS.
10.4.
Aspects multiutilisateurs.
Le SGBD JET est capable de traiter des accs simultans, mais la gestion des verrous nest pas aussi rigoureuse quavec un SGBD serveur. Ici aussi la solution consiste travailler en client / serveur et traiter par code VB les transactions dlicates.
page
33
10.5.
Des rserves exposes ci avant, il apparat que contrario, ACCESS est bien adapt aux applications bureautiques personnelles, ce qui reprsente une trs grand domaine dapplication. Ds que le nombre dutilisateurs deviendra important, on pourra basculer en client serveur. Les transactions dlicates pourront tre mieux scurises par un traitement VISUAL BASIC. Souvent cela ne reprsente quune petite partie des traitements. Les informaticiens traditionnels rpugnent employer ACCESS : Ils redoutent des difficults pour matriser transactions et verrouillages. Le travail sans code les droute.
page
34