Académique Documents
Professionnel Documents
Culture Documents
Cet exercice Access de cration d'une base de donne est reprise des formations d'YBET informatique donnes enentreprise ou dans notre salle de formation informatique. L'accs la base de donne cre dans cet exemple n'est accessible qu'aux participants aux formations. Par contre, les copies d'cran et textes explicatifs devraient permettre un utilisateur normal de refaire la base de donne.
1. Introduction.
Dans la premire partie de la formation Access, nous avons vus bon nombre de fonctionnalits, sans nous attacher une relle cration d'une base de donne. Cette partie du cours Access utilise les 13 premiers chapitres de la formation. Ce chapitre va nous permettre de mettre de l'ordre dans nos ides par un exercice Access: une facturation. Dans cet exemple, je me rfrerais systmatiquement aux chapitres concerns de la formation. Nanmoins, les utilisateurs avancs Access pourront directement crer cette facturation. Cet exercice analyse l'entiret de la cration d'une base de donnes Access, depuis le choix des champs, jusqu'aux contraintes, en expliquant systmatiquement pourquoi on choisi telle ou telle solution. J'essayerais d'analyser chaque fois les diffrentes possibilits.
2. L'exercice
Cet exemple d'utilisation d'une base de donne Access va nous permettre de crer la facturation d'une petite entreprise. Cet exemple est donc thorique puisque des applications (gestion commerciale, point de vente, ...) sont dj dveloppes, pour des sommes modiques (Ciel Gestion commercial revient 299 hTVA). Les desiderata de cette base de donne sont: 1. Liste des clients 2. Liste des produits 3. Reprise automatique des prix, description, taux TVA de la fiche produit dans la facture en fonction du code du produit. 4. Possibilit de modifier les prix en cours de facturation 5. Blocages des entres de nouveaux clients, produits en cours de facturation. 6. Etats, impressions et formulaires d'entres 7. et d'autres qui vont intervenir en cours de choix de nos contraintes et limitations Dans la partie "Cours Access avanc", nous ajouterons la gestion de stock
1. Introduction.
La premire partie de cet exercice Access bas sur une facturation va tre de dterminer quelles tables sont crer, quels champs utiliser. Bref, c'est la partie la plus difficile de Microsoft Access puisque les choix de cette partie de l'exercice vont conditionner tous les dveloppements de notre application de facturation, et mme de limiter ou d'tendre les fonctionnalits de notre base de donne.
Numro de facture:
Taille du champ peut tre entier long. Comme le numro de facture est obligatoire et unique, plusieurs possibilits possibles: 1. null interdit et index sans doublons 2. Cl primaire Le choix portera consquence puisque dans le deuxime cas, le numro sera automatiquement incrment. Par contre, la remise zro ncessite la suppression et la reconstruction du champ
Date facture:
Le format date peut tre choisi personnellement, il ne gre que l'affichage. Par facilite, choisissons la valeur par dfaut comme la date actuelle en slectionnant la fonction Access maintenant() De nouveau, null interdit L'indexation n'est pas obligatoire, mais conseille dans certains cas.
Code Client:
Ce champ va reprendre les mmes contraintes que dans la table client. Par facilit, slectionnons la taille 10 caractres. Je laisse chacun le soin de crer le masque de saisie en fonction de sa propre entreprise.
Nous devons autoriser les doublons. Par contre, l'indexation fera gagner du temps dans les recherches futures. Null interdit n'est pas obligatoire mais: . Null interdit et chane vide autorise NON oblige rentrer un code client correct . Dans le cas contraire, vous pouvez utiliser un client vide pour une vente comptoir par exemple.
6. La table produit
Nous reprenons forcment le champ Code produit, avec des proprits identiques celui de la table "Contenu facture". Comme le contenu de ce champ doit tre unique dans la table et qu'il doit tre index, nous allons dsigner ce champ comme cl primaire. Le reste des champs reprend la description, le prix et le taux de TVA. Ceux ci sont normalement obligatoires.
Un conseil, insrez au moins un champ pour avoir l'accs cette requte facilement.
3. Question de l'exercice.
1. Quel intrt d'utiliser des champs calculs dans la requte plutt que dans un formulaire ou dans un tat pour cette facturation. 2. Pourquoi ne pas construire notre base de donne relationnelle partir des requtes Access et prfrer les formulaires et tats.
Comme contenu de notre sous formulaire, slectionnons la table Client. Comme champ de liaison, slectionnons Code client pour chaque table.
La prsentation en mode modification semble correcte, pourtant, en affichage, les coordonnes du client sont en mode tableur. Pas trs propre, et surtout obligation d'utiliser les ascenseurs pour vrifier l'adresse du client, la prfrence ira plutt un mode ligne de informations.
La modification de cette apparence est lie au formulaire "Sous formulaire client", pas au formulaire Facture. Fermons notre formulaire et ouvrons le formulaire client en modification.
Affichons les proprits du formulaire. Comme affichage par dfaut, slectionnons Formulaire unique au lieu de feuille de donne. Le tour est jou. Puisque nous sommes dans les proprits du formulaire "Sous formulaire client", modifions d'autres proprits. Nous pouvons par exemple empcher d'utiliser ce formulaire pour rentrer ou modifier des donnes. Cette mthode empche l'utilisateur de crer directement de nouveau client ou de modifier des coordonnes existantes.
Comme suite de l'exercice, crez un formulaire Access permettant de rentrer et modifier les clients. A l'aide de ce formulaire, rentrez quelques clients de votre entreprise.
De nouveau, les choix pralables vont modifier notre manire de travailler. Si nous autorisons de rentrer de nouveaux clients dans le formulaire facture, nous risquons de recrer des clients existants, sans compter que nous pouvons interdire de crer de nouveaux clients sans une vrification de la comptabilit par exemple. Nous ne pouvons pas non plus rechercher un client existant.. Dans les 2 chapitres suivants, nous allons voire 2 mthodes pour corriger ces fonctionnalits: 1. List de choix dans le code du client. 2. Double click sur le code client (dans la partie facture) qui fait apparatre le formulaire client. Cette dernire possibilit est utilise en bloquant la liste.
2. Cration de la requte
Dans le formulaire facture, utilisez la bote outils pour slectionner la commande Zone de liste droulante (nous pouvions galement slectionner zone de liste). Slectionnons "Je veux que la liste droulante recherche les valeurs dans une table ou une requte" et slectionnons notre table client. L'astuce va tre de slectionner le code client et le nom du client (vos pourriez en slectionner plus). La case cocher va nous permettre de masquer (ou non) la premire colonne (le code du client).
Si vous cachez la premire colonne, elle sera automatiquement prise comme valeur sauvegarder. Par contre, dans l'autre cas (ou si vous slectionnez plus de 2 champs, vous devez signaler quel champ doit tre utilis:
Cas de 2 champs affichs. Le choix dans la zone de liste influence le code client dans la partie facture et la partie client. De mme, taper le code de client dans la zone facture affiche le nom du client dans la liste de choix. Par contre, vous n'avez pas d'affichage des coordonnes du client tant qu'un code client valide n'est pas affich dans la zone facture. Cette solution a un lger problme. Nous avons finalement un double emploi entre le code de la liste de choix et celle du formulaire au niveau facture. Si nous supprimons le champ code client (de la table facture), nous supprimons galement la relation entre les 2 tables. Ceci est li au choix de stocker dans un champ plutt que de mmoriser:
Dans ce cas, il nous suffisait de supprimer le code client et de dfinir dans le formulaire ce nouveau champ comme "code client" de la table facture dans les proprits de la zone modifiable.
La prochaine tape va tre de permettre via un autre formulaire de crer un client existant. Pour cela, nous passerons par une macro et une procdure vnementielle.
3. Formulaire client.
Une autre solution serait de crer un bouton avec une macro pour afficher le formulaire client cr prcdemment (ou un autre puisque client permet de rentrer de nouveaux client ou de modifier les coordonnes des clients existants). Reprenons notre formulaire de facturation et insrons un bouton de commande. Comme macro associe, slectionnons "Opration sur formulaire, ouvrir un formulaire". Slectionnons le formulaire client (nous ne crons donc pas un formulaire spcifique). Dans cette mthode, il faudra nanmoins rentrer le code du client manuellement, sans compter que le code d'un nouveau client sera refus dans la facturation tant que le
formulaire ne sera pas rafrachi (en gros quitter le formulaire et le rouvrir) Mme si ce n'est pas la mthode la plus adquate, elle a le mrite d'exister. La mthode suivante va corriger cela par l'utilisation d'une vritable macro et d'une procdure vnementielle.