CONTACT | Actualités  |  Mot de passe oublié ?  
BOUTIQUE CARREFOUR INTERNET
C'EST QUOI ?
CRÉER MON COMMERCE CARREFOUR INTERNET
C'EST QUI ?
PSEUDO   MOT DE PASSE 
    Guide webcommerçant | Guide Réseau CI | Réseau CI | Toolbar CI | HOTLINE
Autres services : PrimitiFrancitéWebDBestMondeFlirtmoi | Réseau découverte | Email rémunérés
Mots-clés  
 COURS ACCESS

Cours Access

1. Introduction à la base de donnée

Ce tutorial ACCESS reprend les notions etquelques applications de la base de données Access de Microsoft en 17chapitres. Même si ce n'est pas le cours donné dans notre salle de formation, pluscomplet, son utilisation est gratuite et devrait permettre de créer rapidementdes bases de données. L'exercice associé va nous permettre de créer une base dedonnée relationnelle pour le classement et la gestion de CD musicaux, cassettesvidéo, DVD, ... Un autre exemple d'utilisation est repris dans le cours sous Gestion des finances d'unclub

Une base de donnée permet de classer, trier etfiltrer de larges quantités d'informations. Chaque logiciel de gestion(comptabilité, gestion commerciale, stock, ...) est d'ailleurs une base dedonnée. Vous pouvez également le faire avec un tableur comme Excel.C'est en partie vrai. Si vous êtes un utilisateur avancé du tableur, certainesfonctions peuvent sembler similaires. Néanmoins, les possibilités de MicrosoftAccess sont largement supérieures dans ces domaines, surtout si vous utilisezde grandes quantités de données.

Pour débuter notre formation Access,commençons par un petit lexique spécifique aux bases de données

2. Le classement - tri

Prenons par exemple un fichier d'adresse. Le triva permettre de classer par ordre alphabétique suivant le nom, prénom, ... Dansla majorité des bases de données, ces classement peuvent se faire suivantdifférents niveaux. Par exemple

  1. Nom
  2. Prénom
  3. code postal
  4. ...

Dans notre exemple, les personnes seront d'abord triées suivant le nom. Sideux personnes ont le même nom, le tri se fera alors suivant le prénom. Pourdeux personnes homonymes, le classement se fera ensuite suivant le code postaldu lieu de résidence, ...

3. Filtrage des enregistrements

La fonction de filtre des enregistrements permetde n'afficher que les enregistrements répondant à des critères complexes. Dansle cas de notre fichier d'adresse, ceci permet par exemple à Access den'afficher les hommes de plus de cinquante ans habitant à Florenville. Ce typede filtre est très efficace. Pour faire ces filtres, il vous fautimpérativement créer des champs adéquats avec les bonnes données suivant lapersonnes. C'est la principale difficulté lorsque vous créez une base dedonnée Access: choisir correctement les champs.

4. Vocabulaire: enregistrements et champs.

Les bases de données, notamment Access, sontcaractérisées par des enregistrements et des champs. Dans le cas d'un carnetd'adresse, l'enregistrement représente les coordonnées de la personne. Lechamp, représente la case à remplir, un renseignement repris dans unecatégorie pour chaque enregistrement. La création d'une base de donnée impliquedonc au préalable la création d'une structure en fonction des renseignementssouhaités. Cette étape est de loin la plus importante. De par leur conception,ajouter des champs alors que la base de donnée et ses différents modulesd'analyse sont créés est fastidieux. Des exemples sont également fournisdirectement avec la base de données.

Quels champs devons nous créer? Reprenonsnotre exemple d'un fichier d'adresse Access. Quelles sont les catégories derenseignements que nous serions amenés à rechercher sachant que la fonctiond'une base de donnée passe par le tri et le filtrage. Un autrecritère va rentrer en ligne de compte, des renseignements supplémentaires.

  • Nom: Ceci est d'abord un renseignement sur la personne mais va nous permettre de faire une recherche sur une personne.
  • Prénom: Le critère est identique à celui du nom. Pourrions-nous rassembler le nom et le prénom? Oui et non. Prenons le cas d'utilisation de cette base de donnée pour un mailing. L'adresse de la personne reprend effectivement le nom et le prénom. Par contre, la phase type en bas de la lettre reprend "Je vous prie d'agréer, Monsieur Lejeune, mes salutations distinguées." Remarquez tout de suite que le prénom n'est plus utilisé. Pour des lettres amicales, c'est le prénom qui est utilisé.
  • L'adresse: reprend la rue et le numéro de maison, boîte postale. Dans l'adresse, le débutant va découper cette information en tranche. Est-ce nécessaire? Probablement non. Il est peu probable que vous fassiez un tri ou un filtre sur la rue et moins encore sur le numéro de maison. Ce champ est indicatif.
  • Le code postal: ici aussi nous pourrions rassembler le code postal et la ville. Néanmoins, dissocier les 2 va nous permettre différentes petites choses. La ville est spécifique et va nous permettre de faire un tri. Par contre, du moins en Belgique et en France, le code postal va permettre de trier non pas sur le domicile mais sur une zone d'habitation, typiquement sur la commune en Belgique.
  • La ville: tri sur le domicile.
  • Le numéro de téléphone, fax, GSM ... A moins de faire une recherche type annuaire inversée, ces informations ne sont qu'indicatives.
  • Les informations professionnelles: On retrouve le nom de la société, la fonction de la personne et coordonnées de l'entreprise. Les règles sont identiques que celles de l'adresse privée.
  • D'autres renseignements seront rajoutés suivant l'utilisation de cette base de donnée Access à titre de renseignements comme la date de naissance (anniversaire), prénom de l'épouse - époux, enfants, ...

Est-ce suffisant, non. Il nous manque quelques champs importants.

  • Le titre: Monsieur, Madame, Mademoiselle, ... Ce champ est important pour deux raisons. D'abord parce qu'il est utilisé dans le courrier (adresse et formule de politesse). Deuxièmement, ce champ va nous permettre de déterminer le sexe de la personne. Un champ supplémentaire pourrait également être utilisé.
  • Des champs additionnels de tri. L'utilisation d'une base de donnée Access permet d'afficher les enregistrements suivant un filtrage. Pouvons nous utiliser certaines combinaisons de ce filtrage? Oui. Prenons notre carnet d'adresse sous Access. On retrouvera dans ce carnet des amis, connaissances, relations professionnelles, utilisateurs du cours, ... La solution habituelle est de créer un carnet d'adresse informatique pour chaque catégorie de personnes. L'autre possibilité est de créer une seule base de données et d'ajouter des cases à cocher (oui ou non) reprenant ces différentes catégories. Ceci nous permettra de cibler l'envoi de courrier suivant le type de relation, par exemple tous les membres du club de sport

5. Base de donnée Access?

Maintenant que les explications préliminaires du cours sont acquises,intéressons nous à la base de donnée de Microsoft. Les onglets d'Access sesubdivisent en 7 parties. Passons en revue les principaux.

  • Débutons par la table: elle reprend les informations brutes (non traitées): les enregistrements et les champs. 
  • Une requête permet diverses mises en forme des tables: le tri, filtre, afficher ou nom des données, … 
  • Un Formulaire affiche les données des tables et requêtes d'une manière agréable. 
  • Un état permet d'imprimer des données de tables et de requêtes avec si nécessaire des regroupements et des calculs. C'est bien là la grosse différence entre Excel et Access, les calculs ne se font pas par de simples formules, mais bien par ces états d'impression. L'avantage, c'est qu'une fois que l'état est fait, tout se fait automatiquement. Le défaut, c'est de … faire ces états. Néanmoins, pour de nombreux enregistrements (plus de 500), Excel est vite dépassé, limité de toute façon à 65535 lignes par feuille.
  • Les macros permettent d'exécuter des fonctions à partir de requêtes ou de formulaires. Nous ne rentrerons pas dans la programmation d'ACCESS dans cette formation mais utiliserons ces fonctions pour créer un formulaire d'entrée.
  • Page: permet de créer des pages Internet pour accéder à la base de données

 

2. Cours: table ACCESS

Débutons notre cours Access par les tables. Unetable reprend les informations brutes (non traitées) d'une base de donnéeAccess. Une base de donnée Access peut comporter plusieurs tables qui peuventêtre liées entre elles (base de donnée relationnelle) ou totalementindépendantes.

Après avoir démarré Access, sous l'onglet TABLES, sélectionnons lacommande "Créer une table en mode création". La fenêtresuivante apparaît:

La colonne champ reprend le nom du champ. Letype reprend des formats de données préétablis.

Comme l'exercice de ce cours Access doit nouspermettre de créer une base de donnée de gestion de CD-DVD, bibliothèque, ...commençons directement par créer la table pour cette exercice

2. Les formats de Champs sous Access

Même si certains types de champs dépassent lecadre de ce cours Access, voyons les principaux.

  • Texte: permet de créer un champ avec du texte et des chiffres mélangés. Vous ne pouvez pas faire de calculs dans ce type de champs. La taille est limitée à 255 caractères
  • Mémo est équivalent à TEXTE mais peut reprendre plus d'informations. Des limitations d'affichage, notamment dans les états rendent ce type de champ peu utilisé. La taille maximum est de 65.535 caractères.
  • Numérique. Ce format de champ permet de rentrer des chiffres sous différents formats.

Octet: nombres entiers de 0 à 255

Entier (2 octets): nombres entiersentre - 32 768 et + 32 767

Entiers long (4 octets): nombres entiers entre -2147 483 648 et + 2 147 483 647

Réel simple (4 octets): 7 décimales, nombresentre - 3,402 823 E 38 et  + 3,402 823 E38

Réel double (12 octets): 28 chiffres derrière lavirgule (décimales), nombres entre 1,797 693 134 862 31 E308 et 1,797 693 134862 31 E308

Monétaire (4 octets): 4 décimales, nombres entre-922 337 203 685 477,5808 et 922 337 203 685 477,5807

  • Date et heure
  • Monétaire est identique à numérique mais rajoute le caractère monétaire. Généralement, on utilise directement numérique
  • Numéro Auto permet à Access d'incrémenter le numéro à chaque nouvel enregistrement.
  • Oui/non est de type booléen (vrai ou faux)
  • Lien hypertexte
  • Objet OLE: tous objet provenant d'une application compatible OLE, images, ...
  • Assistant liste de choix. permet de créer suivant une liste tapée ou reprise dans une autre table les différentes possibilités acceptées. Cette notion sera vue dans un chapitre à part.

Les autres propriétés des champs seront vues ultérieurement dans Propriétésavancées des tables

3. Création d'une table Access simple

Pour commencer l'exercice de ce tutorial, nousallons créer une simple table. Dans l'onglet "TABLE", sélectionnons"Créer une table en mode création". En premier, créons unchamp dont le nom est classement. Ce champ va permettre de classer nos albumsselon un numéro par exemple. Nous le laissons en mode texte. Complétons par leschamps suivants:

  • champ texte "Titre album"
  • champ date "date de l'album"
  • champ texte "titre 1" pour le premier titre de l'album
  • champ texte "interprète 1".

Nous pourrions créer titre 2, interprète 2, … etainsi de suite mais nous verrons que de meilleures possibilités existent.

Quittons par la croix à droite sur la fenêtre etAccess demande si nous voulons sauvegarder notre table. Acceptonsl'enregistrement et nommons cette table "Album".

Une nouvelle question apparaît demandant une cléprimaire. Cette clé n'est pas obligatoire mais accélère le traitement desinformations d'une base de donnée sous Access. Malheureusement, cette clé doitêtre unique dans la table. Nous pourrions choisir classement, mais ceci n'estpas possible si nous utilisons titre 2, … A ce stade, sélectionnons pas declé primaire.

Cliquons de nouveau sur album pourl'ouvrir et nous pouvons maintenant rentrer des données dans les différentschamps, des enregistrements qui sont dans notre cas des chansons.

Serait-il possible de scinder notre table endeux. Une partie serait réservé au contenu des albums, l'autre à l'en-tête(titre de l'album, …). OUI! Cette partie sera vue plus tard et s'appelle une basede donnée relationnelle.

Ceci va modifier notre table de départ puisquenous allons pouvoir utiliser le classement comme clé primaire, il n'y aura plusde risques de doublons. Modifions notre table et supprimons les deux champs"titre1" et "interprete1". Pour cela, sélectionnons latable album et cliquons sur le bouton "Modifier". Sélectionnons laligne et appuyons sur la touche "del".

Sélectionnez le champ"Classement" etavec la touche droite de la souris, faisons apparaître le menu contextuel.Cliquons sur "clé primaire", en le laissant en type de données texte.Le classement sera dès lors unique. Si notre classement devait être en chiffreet fait automatiquement, nous pouvions pour ce champ utiliser le type endeuxième colonne "NuméroAuto". Cette solution pose quelques problèmeslors de la suppression d'enregistrements.

Créons maintenant une deuxième table que nousappellerons "contenu" par la même méthode reprenant les champsclassement, numéro de piste, interprète et titre

Lorsque Access demande la clé primaire, cliquezsur OUI et un champ sera automatiquement rajouté de type numérotationautomatique.

Nous voici donc avec 2 tables Access. Un chapitresuivant nous permettra de créer une base de donnéerelationnelle en les reliant entre-elles via un champ de même type (ici lechamp classement).

4. La clé primaire.

Nous venons de voir deux manières d'utiliser laclé primaire dans ce cours. Cette notion est secondaire dans de nombreux casmais peut-être particulièrement utile. Lorsque vous créez une nouvelle table, àl'enregistrement, Access demande automatiquement si vous voulez créer une cléprimaire. A quoi sert cette clé? Elle va permettre d'accélérer certainstraitements de l'information

La première possibilité est de laisserAccess créer un champ spécifique qui va s'incrémenter automatiquement suivantle numéro. 

La deuxième solution est d'utiliser unchamp de la table Access comme clé primaire. Dans ce cas le contenu de ce champdoit être unique (deux enregistrements ne peuvent utiliser la même valeur pource champ). Cette solution est utilisée dans ce cours pour notre table album. Enplus, Access indexe automatiquement par ordre croissant sur la clé primaire

Dans le premier cas, ce champ "cléprimaire" n'est pas le numéro de l'enregistrement mais bien un nombres'incrémentant à chaque nouvel enregistrement. Par contre, si vous supprimez unenregistrement, le champ n'est pas remis à jour dans les enregistrementsrestants. Pour redémarrer la clé primaire à 1, il faut donc supprimer le champde la base de donnée et en recréer un champ de nom identique.

5. Déplacements, nouveaux enregistrements

Cliquons 2 fois sur le nom de la table créé,Access affiche le contenu sous forme de tableau avec les enregistrements enligne et les champs en colonne. En bas de la fenêtre, on retrouve une petitebarre d'outils de navigation.

Cette barre d'outils permet de se déplacer etd'insérer de nouveaux enregistrements. Dans l'exemple ci-dessus, la tablecomporte 92 enregistrements et nous sommes sur le numéro 19. Attention, toutemodification dans un champ est immédiatement pris en compte dans la base dedonnée. Dans le cas d'un tableur, la modification n'est enregistrée sur ledisque dur qu'avec la commande enregistrer du menu fichier. 

6. Le champ classement

Nous allons rentrer des données dans cette tablemais avant, quelques précisions sur le champ classement. Cette notion estidentique pour le champ code article d'une gestion commerciale. La majoritécodent sur des chiffres. Ce n'est que rarement la solution idéale. La manièredont vous allez décider de coder les CD dans l'exemple de ce tutorial Access oule code du produit dans une gestion commerciale va intervenir dans votremanière de rechercher l'information.

Dans notre base de donnée musique, nous pouvonsutiliser un codage de type XX-00000. Le XX représentant les 2 lettres du typede musique , suivi de chiffre pour le numéro du CD dans cette catégorie. XXpeut-être par exemple DI (disco), AM (ambiance), ... Ca facilite souvent leclassement dans l'armoire. De même, il est plus facile pour une épicerie declasser suivant le rayon du produit, suivi de la marque, .... Essayez pour leplaisir de retrouver suivant un numéro un article parmi 5 ou 6000 ....

 

 

Tutorial 3. Les requêtes Access

Dans le chapitre précédant de ce tutorial, nousavons vu  lacréation des tables qui permettent de rentrer les données (lesenregistrements) dans des champs délimités. Ces tables ne permettent pas defaire un tri ou un filtrage sur les enregistrements de la base de donnéeAccess. Cette fonction est dévolue en grande partie aux requêtes. Une requêteest liée à une (ou plusieurs) tables, elle reprend ses données et les organise.Rentrer un enregistrement dans la requête ou dans la table revient doncstrictement au même.

Plusieurs types de requêtes sont proposées par Access. Dans cettepartie, nous nous contenterons des requêtes de tri et des requêtes de filtres.Les autres types de requêtes seront vues dans une formation plus avancée.

Ceci est une grosse différence avec Excelpuisqu'un tableur permet directement de faire des tris et des filtres comme vusdans le cours Excel: tri et filtre.

2. Création d'une "requête tri" sous Access

Intéressons nous d'abord à la table"Contenu" créée dans le chapitre précédant. Cliquons sur le boutonrequêtes. et ensuite, créez une requête en mode création. Access proposed'ajouter une table, sélectionnons "contenu" et une fois cette tableajoutée, cliquons sur le bouton "Fermer".

Nous avons 2 possibilités. Soit nous déplaçonsle champ sélectionné vers le bas, soit nous déplaçons l'étoile vers le bas.Malheureusement, la deuxième solution, plus rapide, ne nous permet pas detravailler sur les champs. Nous devons donc déplacer tous les champs dans lapartie inférieure les uns après les autres (pour sélectionner tous les enregistrements,sélectionnez les 2 extrêmes avec la touche shift enfoncée). Nous pouvonsnégliger le champ "N°" qui n'est pour nous d'aucune utilité. Commenotre but est d'effectuer des tris et des filtres sur notre table, examinonscette partie inférieure. En troisième ligne, apparaît "Tri". Cecioffre la possibilité en ordre croissant ou décroissant. Faisons un tri en ordrecroissant sur le classement.

Quittons notre requête et enregistrons-là sousle nom "contenu par classement". Cette requête nous a déjà permisd'éliminer des champs de l'affichage (n° dans notre cas) et de faire un trisuivant un champ (classement ici). Les requêtes nous permettront d'autrespossibilités plus tard.

A retenir: une requête Access permet de trier sur 1 ou plusieurs champs ou de n'utiliser qu'une partie des champs.

3. Tris multiples

Nous savons maintenant comment trier une base dedonnée suivant le contenu d'un champ. Mais comment trier suivant plusieurschamps?

La solution est simple. Vous avez remarqué eninsérant les champs dans la création de la requête que vous pouviez finalementles mettre où vous voulez. Le tri se fait suivant l'ordre des champs dans lafenêtre de requête.

Dans l'exemple ci-dessus, le tri se fera doncd'abord par ordre croissant sur le champ "Classement", ensuite,décroissant sur Plage.

4. Un filtre suivant le contenu

La deuxième fonctionnalité d'une base donnéeAccess (comme toutes les bases de données) est le filtre des informations. Nousreverrons cette notion de manière plus approfondie plus tard mais voyons déjàquelques exemples.

Tapons C42 dans la partie critère sous le champclassement. La requête n'affichera que les enregistrements (nos CD - DVD) dontle classement (notre numéro) est C42

Tapons cette fois fa*, Access rajoutera automatiquement comme"fa*. Larequête n'affichera plus que les enregistrements commençants par FA. Access, aucontraire de Word en publipostage, ne fait pas la distinction entre lesminuscules et les majuscules.

Tapons maintenant comme critère *A* (Accessrajoute comme "*a*). Le résultat de la requête affichera tous lesenregistrements contenant a dans le champ "classement". 

Pour accepter un seul caractère, vous pouvezutiliser le ?. Dans ce cas, il faudra taper effectivement le comme"" pour accepter cette solution.

Dans l'exemple ci-dessous, le résultat renvoyépar la requête sera les champs commençant par une lettre ou un chiffre, suivide la lettre a (ou A), suivi de 2 caractères indifférents, suivi du chiffre 2,soit XaXX2. Dans notre exemple, les champs de plus (ou moins) de 5 lettres neseront pas affichés.

Vous pouvez également utiliser la ligne OU pourutiliser plusieurs filtres

5. Champ vide.

Pour afficher uniquement les champs vide, ilsuffit de taper comme critère est null. Pour afficher uniquement lesenregistrements où le champ comporte quelque chose, le critère à inscrire est N'estpas null.

6. Les autres critères des requêtes Access

·                   >: supérieur à

·                   <: inférieur à

·                   <> différent de 

·                   >= supérieur ou égal à 

·                   <= inférieur ou égal à

·                   = égal à

D'autres solutions seront bientôt vues mais çava déjà nous permettre de compléter notre base de donnée.

7. Questions, filtres personnalisés

Les solutions envisagées plus haut sont fixes.Une fois la requête créée, vous devez changer la requête pour modifier larecherche. La solution ici va permettre de poser une question sur la recherchesouhaitée.

Créons une nouvelle requête en mode création(pour les requêtes, le mode assistant est peu différent). Sélectionnons latable contenu album.

Sélectionnez le premier champ de la table Access, descendez avec l'ascenseur et cliquez sur le dernier champ en maintenant la touche <shift> enfoncée. Ceci va sélectionner l'ensemble des champs. Glissons l'ensemble vers la première case "champ disponible. Ceci va transférer l'ensemble des champs vers la requête.

Supposons que nous désirons retrouver tous lestitres chantés par un groupe ou chanteur. Dans la solution envisagée plus haut,nous devions créer une requête de type ="nom du chanteur".

Dans la case critère sous le champ interprète,tapons [Nom de l'interprète ou groupe]. Cette méthode créé en fait un champs(non repris dans la table mais utilisé par la base de donnée Access).Enregistrons notre requête sous le nom "Recherche d'interprète"et exécutons-là:

 

Automatiquement, Access va afficher une petitefenêtre demandant le nom de l'interprète, en fait, le contenu entre crochet [].Ce [contenu-champ] ne peux être identique à un champ existant et ne peuxdépasser 64 caractères. 

Cette solution de filtre est déjà beaucoup plussouple, mais oblige à taper le nom de l'interprète ou du groupe musicalcorrectement. Serait-il possible de pouvoir taper une partie du nom? Oui.

Tapons manuellement comme critère Comme"*"+[Nom de l'interprète ou du groupe]+"*". 

Passons en mode feuille encliquant sur  en haut à gauche dans la barre d'outils. Cette solutionpermet de vérifier la requête sans l'enregistrer.

La base de donnée Access posera la même question, mais la requête afficheratous les enregistrements dont le champ interprète contient le mot tapé. Ceciest très utile pour retrouver un client dans une base de donnée de gestion destock par exemple.

Enregistrons notre requête.

8. Multi-critères.

    La base de donnée Access permet également des requêtesmulti-critères. Comme la majorité des logiciels, Access accepte la fonction ETet la fonction OU. 

  • "critère" 1 ET "critère 2" nécessite que les 2 critères soit remplis.
  • "critère" 1 OU "critère 2" nécessite qu'au moins 1 des critère soit rempli.

Nous allons utiliser cette possibilité pourvérifier les albums sortie entre 2 dates.

Créons une requête en mode création en utilisantla table album. 

Comme critère, sous le champ date, tapons >01/01/2003 et à la ligne suivante: <01/01/2005. Access rajouteautomatiquement les caractères #. En essayant cette requête, ça ne marchepas : tous les enregistrements sont affichés??? Forcément puisque larequête utilise la fonction OU (OR en anglais). Nous devons utiliser unefonction ET. Supprimons les critères et tapons directement >01/01/2001 ET<01/01/2005. Access rajoute automatiquement les caractères de contrôles.

Et voilà, la requête Access afficheeffectivement les albums sortis entre le 1 janvier 2001 et le 1 janvier 2005.

Nous pouvons ici aussi poser la question. Lecritère devient: >[date de départ] Et <[date finale]. De fait, larequête Access demande d'abord la date de départ, ensuite la date finalerecherchée.

 

 

4. Formulaire Microsoft Access

Si vous avez rentré des enregistrements dans unetable de la base de donnée Access, vous avez remarqué l'aspect tableur de typeExcel des enregistrements. Les formulaires Access vont nous permettre de faireun affichage personnalisé de nos tables et requêtes: mise en forme des champs,mises en formes de quelques données, ... Le formulaire est le point centrald'Access pour entrer ou afficher vos enregistrements. Un formulaire peut être crééà partir d'une table ou d'une requête. Dans un chapitre ultérieur, nous verronsles propriétés avancéesdes formulaires Access.

2. Un formulaire de base.

Cliquons sur le bouton "Formulaires" et créons unformulaire à l'aide de l'assistant, le mode création sera vu plus tard.Sélectionnons Requête: contenu par classement créé au chapitre 3.

Faisons passer tous les champs dans la partiedroite. Ceci nous permettra de les afficher. Sélectionnons par exemple commetype de formulaire "Justifié" "SUIVANT >". Sélectionnonsun style au hasard. Ceci ne fait que de sélectionner des couleurs de fond, ceque nous pourrons modifier plus tard.

Ouvrons le formulaire pour inspecter notretravail. Si vous n'avez pas encore rentré de CD - DVD dans la base de donnée(table ou requête), aucun enregistrement ne sera affiché.

Pouvons nous rentrer des données ici danscontenu, Oui! Et même plus puisque les données rentrées dans ce formulaireserons rentrés dans la base de donnée contenu et dans la requête (qui dépend dela table) contenu par classement.

Rentrons par exemple les données suivantes.

Le résultat semble peu expressif. Ceci est lié aufaible nombre de champs utilisés, mais nous améliorerons ceci plus tard. Pourrappel, les boutons en bas à gauche servent à se déplacer et à rentrer desdonnées.

Nous allons modifier notre requête pour triersuivant le classement, mais pour qu'en cas de même classement (le même CD), lespistes apparaissent en ordre croissant.

La Requête sélectionnée, cliquons sur le bouton modifier. etrajoutons tri croissant pour le numéro de piste. Comme cette colonne est après"Classement", ACCESS fera le tri après celui sur classement. Ceci vanous permettre de rentrer nos CD dans n'importe quel ordre. Remarque, dans lesbases de données ACCESS, les tris ne se font qu'après la fermeture de larequête ou du formulaire associé, une lacune par rapport à d'autres bases dedonnées nettement plus anciennes comme DBASE.

3. Formulaires Access personnalisés.

Dans le cas ci-dessus, nous avons utilisél'assistant pour créer un formulaire. Cette fois, utilisons le mode création.

La présentation devient nettement moinssympathique mais cette méthode va nous permettre de réellement créé unformulaire selon nos besoins. L'affichage est tout à fait brut, seule la barred'outils va nous permettre de créer des textes, champs, boutons, ...

A notre stade, analyser toutes lesfonctionnalités serais trop complexe mais voyons d'une manière générale cesfonctions:

  • Sélection: permet de sélectionner le contenu d'une zone.
  • Assistant contrôle permet de travailler ou non avec des contrôles, c'est une aide précieuse pour la création d'un formulaire.
  • Texte (étiquette): permet de taper un texte (titre par exemple).
  • Champ: permet d'insérer un champ provenant d'une table ou d'une requête
  • Bouton bascule, bouton à cocher et Case à cocher ont la même fonction, seule la présentation change. Ces boutons sont à utiliser dans des champs de type "Oui/non"
  • Zone de liste modifiable permet de sélectionner une réponse dans une liste ou une autre réponse
  • Zone de liste ne permet de choisir que les réponses dans la liste
  • Bouton de commande: permet de créer des boutons de fonctions, fermer la fenêtre, quitter l'application, .... Cette fonction sera utilise pour faire un formulaire de "démarrage" de la base de donnée
  • Image: permet d'insérer une image fixe, un logo par exemple
  • Cadre d'objet indépendant permet d'insérer un objet venant d'une autre application indépendamment du contenu
  • Cadre d'objet dépendant permet d'insérer un objet d'une autre application mais dépendant de l'enregistrement
  • Saut de page, permet de couper le formulaire en pages
  • Contrôle d'onglet: permet d'insérer des onglets pour afficher plus d'informations
  • Sous-Formulaire: serons vus avec les bases de données relationnelles
  • Ligne: insérer une ligne dans le formulaire
  • Rectangle: insère un rectangle dans votre formulaire
  • Autres contrôles: une liste de contrôle que nous n'aborderons pas.

Ces notions seront identiques pour les états Access

3.1. Sélections de la table ou requête.

Le premier problème de ce mode de création, c'est"pas de table / requête" sélectionnée.

Dans le menu affichage, sélectionnez propriété. La fenêtre suivant va donnerles propriétés complète de ce formulaire. Dans l'onglet "Toutes",dans la ligne Source, vous pouvez sélectionner la table ou la requête désirée.Remarquez que vous ne pouvez sélectionner qu'une seule table ou requête.Sélectionnons notre table Album par exemple. Une fenêtre va maintenant nouspermettre de faire glisser les champs vers le formulaire.

3.2 Insérer un titre

Pour insérer un titre à notre formulaire,utilisons la boîte à outils et cliquons sur le bouton TEXTE. A l'aide le lasouris, créons une zone et tapons notre texte, par exemple album

La zone sélectionnée, utilisons la touche droitede la souris et sélectionnons propriétés. Ceci va permettre de modifier lacouleur du texte, fond, ... Vous pouvez également utiliser la barre d'outilsau-dessus.

3.3. Insérer une image ou un logo dans notre formulaire.

Dans la barre d'outils, sélectionnez le boutonimage:

Il ne reste plus qu'à donner l'emplacement del'image pour insérer l'objet. Vous devrez probablement utiliser le bouton desélection pour déplacer les textes et champs. Vous pouvez compléter ceformulaire Access en insérant une ligne, un rectangle, ... Nous reviendrons àces formulaires personnalisés.

 

5 Bases de données –Introduction

 

Qu'est-ce qu'une base de données ?

Une base de données (son abréviation est BD, en anglais DB, database)est une entité dans laquelle il est possible de stocker des données de façonstructurée et avec le moins de redondance possible. Ces données doivent pouvoirêtre utilisées par des programmes, par des utilisateurs différents. Ainsi, lanotion de base de données est généralement couplée à celle de réseau,afin de pouvoir mettre en commun ces informations, d'où le nom de base.On parle généralement de système d'information pour désigner toute la structureregroupant les moyens mis en place pour pouvoir partager des données.

Utilité d'une base de données ?

Une base de données permet de mettre des données à la dispositiond'utilisateurs pour une consultation, une saisie ou bien une mise à jour, touten s'assurant des droits accordés à ces derniers. Cela est d'autant plus utileque les données informatiques sont de plus en plus nombreuses.

Une base de données peut être locale, c'est-à-dire utilisable sur unemachine par un utilisateur, ou bien répartie, c'est-à-dire que les informationssont stockées sur des machines distantes et accessibles par réseau.

L'avantage majeur de l'utilisation de bases de données est la possibilité depouvoir être accédées par plusieurs utilisateurs simultanément.

La gestion des bases de données

Afin de pouvoir contrôler les données ainsi que les utilisateurs, le besoind'un système de gestion s'est vite fait ressentir. La gestion de la base dedonnées se fait grâce à un système appelé SGBD (système de gestion debases de données) ou en anglais DBMS (Database management system). Le SGBD estun ensemble de services (applications logicielles) permettant de gérer lesbases de données, c'est-à-dire :

  • permettre l'accès aux données de façon simple
  • autoriser un accès aux informations à de multiples utilisateurs
  • manipuler les données présentes dans la base de données (insertion, suppression, modification)

Le SGBD peut se décomposer en trois sous-systèmes :

  • le système de gestion de fichiers :
    il permet le stockage des informations sur un support physique
  • le SGBD interne :
    il gère l'ordonnancement des informations
  • le SGBD externe :
    il représente l'interface avec l'utilisateur

Les principaux SGBD

6. Base de donnée relationnelle Access

Lorsque nous avons créé nos tables, nousavons déjà mentionné que des tables pouvaient être reliées entre-elles. Uneliaison entre 2 tables Access s'appelle une relation. Par extension, une basede donnée Access qui utilise plusieurs tables reliées entre elles s'appelle unebase de donnée relationnelle. MySQLaccepte également cette fonctionnalité. Cette possibilité permet de réduire lesdonnées à rentrer. Par exemple, dans une gestion de stock, une table reprendrale produit (code, description, nom du fournisseur, ...) tandis qu'une autretable reprendra les coordonnées du fournisseur. Ceci permettra de ne rentrerles coordonnées du fournisseur qu'une seule fois et de relier le codefournisseur dans la table produit. Un deuxième avantage vient de la taille deschamps. Moins de données sont rentrées dans la base de donnée, ce qui diminuesa taille.

Une représentation de nos 2 tables va nouspermettre d'y voire plus claire. La table Album reprend le classement del'album. Comme ce champ est une clé primaire, le contenu sera unique. Le titreet la date de l'album sont indicatifs. Par contre, la table contenu albumreprend le contenu effectif de cet CD - DVD. Le point de liaison entre ces 2tables est le champ "classement". Un album reprenant comme classement"FA-002" contiendra donc tous les titres repris dans la table"contenu album" avec un classement identique. Il nous reste à fairela liaison entre ces 2 tables, ce qu'on appelle une relation. Plusieursméthodes sont possibles. La première méthode est de créer une requête,la deuxième méthode est de créer un formulaire avec un sous-formulaire.

2. Requête relationnelle sous Access

La première opération va être de créer 2requêtes à partir des tables album et contenu album. Ces requêtes vontsimplement classer les enregistrements. La première requête utilise la tablealbum. Créons cette requête album en faisant glisser tous les champs. Trionsjuste le champ classement en ordre croissant. Appelons cette requête "requetealbum tri". De même avec la table "Contenu album", trionspar ordre croissant sur le classement puis sur la plage. Appelons cette requête"requete contenu album tri".

Nous allons maintenant créer une requête Accessutilisant ces 2 requêtes (utilisez le mode Création). Commençons par ajouterces 2 requêtes.

La relation entre les 2 requêtes n'est pascréée. Pour le faire, cliquons sur classement dans la requête album et enmaintenant la souris enfoncée, glissons vers classement de l'autre requête. Uneligne joint maintenant les champs classements des 2 requêtes. Faisons glisserdans la partie du dessous tous les champs sauf classement de "Contenualbum". En effet, ce champ classement sera identique

Sauvegardons notre requête relationnelle sous lenom RELATION. En ouvrant la requête, nous retrouvons bien tous lesenregistrements avec les contenus des champs des 2 requêtes. Cette méthodepermet de ne plus taper par plage de CD le titre de l'album et la date. C'est ungain de temps mais finalement n'apporte pas grand chose.

Cette requête relationnelle va nous permettreégalement de créer un formulaire. Utilisons le mode assistant en mode colonnepar exemple.

Et voilà, non seulement, les données apparaissenten ordre croissant suivant le classement, mais tous les champs sont remplis.Chaque fois que dans la table contenu, le classement correspond, les 2 sontaffichés. Ceci nous évite de retaper par plage tous les renseignements surl'album en lui-même. Par contre, si le classement n'existe pas dans une des2 tables, aucune information n'est affichée.

Nous pourrions faire un formulaire d'aspect plus sympathique que les 2ci-dessus, reprenons les 2 tables par exemples.

3. Base de donnée relationnelle Access par un formulaire

La méthode la plus simple et la plus complètesous Access pour créer une base de donnée relationnelle passe par lesformulaires. Cette solution va nous afficher chaque fois une plage surl'écran. Pourrions-nous afficher les caractéristiques du CD - DVD et les enmême temps tous les titres de l'album? .... Devinez. Oui. Cette solution passepar un formulaire utilisant un sous-formulaire

Commençons par créer ce sous formulaire comme unformulaire normal. A l'aide de l'assistant, sélectionnons la requête"Requête contenu album tri". Cette requête reprend les contenus desalbums triés par code du CD ou du DVD. Comme présentation, choisissons"Feuille de donnée" et sauvons ce simple formulaire comme Contenualbum.

En mode formulaire, créons un formulaire en modeassistant. Sélectionnons uniquement la requête "requête album tri".Comme présentation, choissions "Justifié".

Modifions la structure du formulaire. A l'aide dela boîte à outils, sélectionnons "sous-formulaire-Sous-Etats" etcréons la zone avec la souris sous les données de notre formulaire.

A l'aide de l'assistant, nous allons Créer cesous formulaire.

Comme formulaire, sélectionnons le formulaire ContenuAlbum créé ci-dessus. Nous allons définir nous même le champ de lien (mêmesi Access le fait automatiquement). Ceci va mettre les 2 bases en liaison.Laissons la dénomination de ce sous-formulaire comme Contenu album. 

Nous pouvons si nécessaire augmenter la taille dece sous-formulaire pour afficher plusieurs lignes de contenu de chaque album

Et voilà notre formulaire relationnel terminé. Labarre d'outils de déplacement en bas permet de se déplacer entre les albums,celle au milieu, à l'intérieur des titres de l'album.

Dans notre formulaire Access, on retrouve doncles enregistrements de la première table Contenu album au-dessus et parliaison relationnelle, la deuxième table qui reprend chaque fois le contenu dechaque album.

 

 

 

7. Les états d'Access

Si dans un tableur comme Excel, l'impression estdirecte (via la commande imprimer du menu Fichier), ce n'est pas le cas desbases de données (SGBD). L'impression d'un rapport passe par la créationpréalable d'un état. Ces états permettent de faire (outre l'affichage deschamps) des tris et des filtres sur les enregistrements. La dernièrepossibilité des états va permettre également de créer des sous-totaux et destotaux sur les résultats imprimés. Les états reprennent donc les calculs reprispar les fonctions Excel.

2. Création d'un état de base

Dans une base de donnée Access, les impressionsse font à l'aide des états.

Utilisons le mode "A l'aide des assistants". Sélectionnons larequête relation que nous avions déjà créée. Celui-ci reprenait les albums etleur contenu. Sélectionnons l'ensemble des champs.

Microsoft Access demandesi nous souhaitons ajouter un niveau de regroupement. Ceci permet de rassemblerpar exemple les titres repris sous un album par exemple. Sélectionnons doncclassement. Cliquons sur suivant. Sélectionnons comme tri le numéro de laplage. Ceci va organiser toutes les impressions suivant le titre de l'album,avec pour chaque album une organisation suivant le numéro de la piste.Ensuivant, sélectionnons une organisation quelconque, par exemple échelonné.Sélectionnons ensuite un style suivant nos préférences et donnons le titrerelation à notre état.

Voici notre premier étatAccess de créé. Sélectionnons notre état et cliquons sur modification.

La fenêtre reprend les différents composants de notre état en modemodification: des titres et des champs. Commençons par analyser les différenteszones de cet état.

L'entête d'état reprend lestextes qui seront repris au début de notre impression. L'entête de page reprendles textes (images, …) qui seront imprimés sur toutes les pages, sansexceptions. En-tête de groupe classement reprend ce qui sera imprimé pourchaque classement (ici le code de chaque album). Dans notre cas, nous avonsinséré le champ, ce qui sera imprimé sera donc le contenu du champ. En détail,sont repris le contenu de chaque album. En pied de page, ce qui sera imprimésous chaque page.

Nous allons modifiercertaines parties. Commençons par la zone détail. En cliquant sur numéro depiste, nous pouvons déplacer ce champ. Pour cela, pointons notre souris en hautà gauche du champ et déplaçons le vers la gauche. Nous pouvons faire de mêmepour les autres champs. Nous pouvons faire de même avec les titres dans lapartie entête de page. Nous pourrions faire mieux. Supposons que noussouhaitions faire des jaquettes pour mettre au dos de nos pochettes. L'idéalserait de ne pas avoir d'entêtes de page, reprendre un album par pages. Le piedde page ne nous intéressant pas trop. Fermons notre états.

Sélectionnons l'état relation et avec le menucontextuel, sélectionnons COPIER. Collons maintenant notre état. Donnons commenom album et sélectionnons-le en modification. Sélectionnons le titre etappuyons sur la touche <del> pour le supprimer. Si nous essayons deréduire la zone, Access reprend quand même une petite zone. Pour réduire toutecette zone, il nous faut d'abord effacer la ligne de séparation qui a été crééeautomatiquement. L'entête de page totalement réduit, plus rien ne sera imprimé.

Nous souhaiterions reprendre chaque album surune page. Dans les outils, reprenons la commande Saut de page et insérons làdans la partie en-tête de groupe. Ceci insérera un saut de page entre chaquealbum (un album par page).

Ceci est un exemple de base de donnée. Nousn'avons ici utiliser que les fonctions de liaisons entre bases de données et detris. Ce serait sous-utiliser les bases de données et Access en particulier.Notre but n'est pas de rentrer dans la programmation, mais d'organiser notretravail.

3. Etats spécifiques.

Toutes les impressions passent par ces états. Sinous voulons créer un état sur un tri particulier, nous pouvons, soit utiliserles fonctions de regroupement dans la création de l'état, soit créer unerequête de départ pour créer ce regroupement.

3.1. Utilisation des regroupements.

Prenons un exemple simple de création d'état enutilisant le regroupement, la liste des albums de notre discothèque. Créons unformulaire en mode "assistant création" et sélectionnons simplementla table album (qui contient uniquement les données spécifiques au CD musical).Sélectionnons le champ Classement comme regroupement. Comme tri, nous pouvonspar exemple choisir la date. Même si cet exemple est simpliste, c'est lapremière méthode pour créer rapidement un petit état.

3.2. Création d'un état via une requête.

Outre les avantages de tris ci-dessus, cettedeuxième méthode a quelques avantages, notamment de permettre de n'afficher queles enregistrements avec une condition sur un champ. Nous avons déjà utilisécette méthode mais nous allons l'améliorer pour ne plus reprendre une conditionfixe, mais une question demandée avant d'afficher l'état.

Créons une requête à l'aide de l'assistant sur latable album. Sélectionnons Tri croissant pour le champ classement. Commecritère, nous allons choisir [Quel-classement?"]. Ce champ n'existe pasmais justement, Access va demander la valeur de ce classement et finalementn'afficher que les enregistrements correspondant.

Seul petit défaut à ce système, lecontenu de la question doit être exactement celui demandé. Pour les chiffres etles dates, vous pouvez même créer une condition inférieure et une conditionsupérieure (résultat compris entre des valeurs). Ceci est également valablepour les formulaires, ...

Conditions Access

> supérieur

=> supérieur ou égal

< inférieur

=< inférieur ou égale

<> différents.

= égal

4. Personnalisation d'états Access

Pour personnaliser nos états, nous pouvonségalement insérer quelques champs particuliers, notamment l'heure d'impression.Par exemple, en insérant le code "Zone de texte" =Maintenant() dansle pied de page, Access insère la date d'impression au format désiré (par lespropriétés de cette zone de texte)

 

 

8. Macro Access

 

Continuons par une création de base de donnéeplus professionnelle, les MACROS. Une macro permet de créer des listesde commandes. Sans rentrer dans la programmation qui dépasserait le cadre de cetteinitiation, ceci va nous permettre de créer un menu de démarrage personnalisé.La deuxième partie de la formation (Access avancé) reprend le menu Macro et procédureévénementielles.

Dans le menu macro, sélectionnons Nouveau. Dans la partie gauche,sélectionnons "Ouvrir formulaire". Dans les propriétés en dessous,sélectionnons le formulaire que nous souhaitons ouvrir. Enregistrons notremacro comme Ouvrir le formulaire. Et voilà, nous venons simplement de créer unepetite macro qui ouvrira le formulaire spécifié et s'insérera dans un autreformulaire. C'est ce que nous allons faire.

Vous pouvez également créer plusieurs opérationsà la suite de l'autre à l'aide de ces macros.

2. Un menu de départ.

Commençons par créer un nouveau formulaire enmode création. Dans ce mode, aucune table ou requête n'est demandée. C'estjustement cela qui nous intéresse.

Dans la barre d'outils, sélectionnons"Boutons de commande" et dessinons notre bouton sur la zone deformulaire.

Directement, un assistant va nous permettre desélectionner une fonction.

A. Déplacements entre enregistrements va nous permettre tous nosdéplacement mais ces fonctions sont déjà reprises dans notre barre dedéplacement en bas.

B. Opérations sur les enregistrements permet d'ajouter, supprimer,... les enregistrements.

C. Opérations sur les formulaires, états, ... va permettre d'ouvrir,... les formulaires et les états.

D. Applications, permet d'exécuter d'autres programmes (Word, excel,...)

E. Divers reprend justement les macros

Sélectionnez "Macros", ensuite lamacro créée ci-dessus. En utilisant les différentes fonctions vous pouvez parexemple faire un menu d'entrée permettant d'ouvrir différents formulaires,états, ... Dans un chapitre ultérieur, nous verrons même comment obligerl'utilisateur à n'utiliser que les formulaires ainsi créés mais le but actuelest uniquement de nous faciliter la vie.

Depuis la version Access XP, une nouvellecommande est insérée dans le menu outils qui permet une fonction similaire: legestionnaire de Menu General.

3. Afficher le formulaire au démarrage d'Access.

Dans le menu Outils, sélectionnons la commande Démarrage

Il suffit de mettre le nom de notre formulaired'entrée dans la case Afficher Formulaire / page pour que notreformulaire soit automatiquement affiché au démarrage de l'application Access.

Cette commande permet également de réduire lespossibilités des utilisateurs au démarrage de l'application Access.

Afficher la fenêtre de base de donnée Access, affiche ou non la fenêtre reprenant les tables, requêtes, formulaire

Afficher la barre d'état

Affiche ou non la barre d'état en bas de votre fenêtre

Autoriser les menus complets permet de limiter les commandes du menus aux commandes utilisateurs. Les menus

Afficher les barres d'outils intégrées, affiche ou non les barres d'outils standard de Access

Utiliser les touches spéciales d'accès

F11

Place la fenêtre Base de données au premier plan.

CTRL+G

Appelle la fenêtre Exécution.

CTRL+F11

Bascule entre la barre de menus personnalisée et la barre de menus intégrée.

CTRL+PAUSE

Dans un projet Microsoft Access, arrête la récupération des enregistrements du serveur par Access.

ALT+F11

Démarre l'éditeur Visual Basic

Ces propriétés de démarrage permettent donc delimiter les possibilités d'utilisation spéciales votre la base de donnée. Cen'est néanmoins pas un niveau de sécurité d'accès que nous verrons dans unchapitre ultérieur avec accès par mot de passe. Pour démarrer normalement, ouvrezla base de donnée Access en maintenant la touche <shift> enfoncée.

Ce chapitre termine la première partie de laformation Access. Nous reviendrons à l'utilisation et à la création d'une macroen étudiant le menuMacro.

 

 

9. Table Access avancée: propriété deschamps

 

Dans le chapitre sur la créationd'une table Access de cette formation informatique, nous nous contentionsde choisir le type de données.

Cette partie va nous permettre de personnaliser les tables:

  • Afficher les données suivant une notation précise
  • Imposer la manière de rentrer les données dans les requêtes.
  • Modifier automatiquement les données rentrées suivant un format défini
  • et bien d'autres

2. Propriétés des champs Access

Chaque champ d'une table Access reprend descaractéristiques spécifiques supplémentaires:

  1. Taille du champ (champs de types texte et numériques à l'aide de caractères spéciaux)
  2. Format: Ce format agit sur la manière d'afficher les informations (pas de les rentrer) et ne modifie pas le contenu)
  3. Masque de saisie: détermine la manière dont les données doivent être saisies
  4. Décimales: (types numériques et monétaires uniquement), le nombre de chiffres derrière la virgule.
  5. Légende: un nom qui remplacera le nom du champ dans les feuilles de données.
  6. Valeur par défaut: la valeur proposée automatiquement
  7. Valide si: règle de validation des données rentrées.
  8. Message si erreur: Texte affiché si les données rentrées ne sont pas conforme à "Valide si"
  9. Null interdit: Si le choix est oui, une donnée doit effectivement être rentrée
  10. Chaîne vide autorisée: (champs de type texte, memo et liens hypertexte) autorise à rentre le caractère d'espace comme valeur. Cette caractéristique est souvent utilisée pour permettre de ne rien rentrer comme donnée (espace quand même) si la caractéristique "Null interdit" est activée.
  11. Nouvelles valeurs (uniquement les champs de type NuméroAuto): incrément (+1) ou aléatoire. Dans les 2 cas, les doublons sont interdits.
  12. Compression unicode: (champs texte et Memo), détermine si le contenu doit être enregistré en format compressé ou non.

Toutes ne sont pas vues ici, seulement lesprincipales.

3. Le format d'un champ.

Reprenons notre table album dans le chapitre "tableAccess".

  • Champ Classement (clé primaire)
  • champ texte "Titre album"
  • champ date "date de l'album"
  • champ texte "titre 1" pour le premier titre de l'album 
  • champ texte "interprète 1".

Le premier problème vient du classement, leformat n'est pas imposé. Nous allons faire quelques aménagements. Dans lapartie propriété, Commençons par délimiter la taille du champ. Par exemple,dans notre cas, nous allons utiliser 5 positions. La taille du champ va doncêtre de maximum 5 caractères. Si cette règle transgresse le format de donnéesexistantes, vous pouvez augmenter la taille.

Passons maintenant au format. Ceci vamodifier la manière dont les données sont affichées (pas rentrées). Lamanière de rentrer les données ci-dessus va modifier les caractères rentrés:">" va convertir les données en majuscules, - va afficher lecaractère "-" et @ va obliger de rentrer un caractère (à chaquefois).

Type de données

Symboles

Explication

Numérique / monétaire

 

Sans format de champ, affichage des données comme elles sont saisies

 

0

Affiche un chiffre. En l'absence de chiffre, un 0 est affiché.

 

#

Affiche un chiffre. S'il n'y a pas de chiffre, rien n'est affiché.

 

F

affiche le caractère F (pour francs)

 

, (virgule)

détermine la position de la virgule dans l'affichage

 

<espace> (<Space>)

Séparateur des milliers

 

%

Multiplie la valeur par 100 et rajoute le symbole %

 

E+ ou e+

Notation scientifique avec le signe + pour les exposants positifs et signe - pour les exposants négatifs

 

E- ou e-

Notation scientifique avec signe - pour les exposants négatifs, aucun signe pour les exposants positifs.

Date / heure

/

sépare le jour, le mois, l'année

 

j

Détermine l'affichage du jour

  • j = 5
  • jj = 05
  • jjj = mar
  • jjjj = mardi

 

m

détermine l'affichage du mois

  • m = 1
  • mm = 01
  • mmm = janv
  • mmmm = janvier

 

a

Détermine l'affichage de l'année

  • aa = 99
  • aaaa = 1999

 

, (vigule)

Sépare les heures, les minutes et les secondes

 

h

détermine l'affichage des heures

  • h = 4
  • hh = 04

 

n

Détermine l'affichage des minutes

  • n = 7
  • nn = 07

 

s

Détermine l'affichage des secondes

  • s = 3
  • ss = 03

 

AM/PM

Détermine l'affichage par 12 heures et rajoute la mention

Texte / Memo

@

caractère de texte requis

 

&

Caractère de texte non requis

 

> 

Convertit les textes en majuscule

 

< 

Convertit les textes en minuscule

Général

*(caractère)

utilise le caractère spécifié après * pour le remplissage

Quelques exemples:

>@@-@@@ oblige à rentrer 5 caractères quiseront affichés en majuscules avec un tiret de séparation. fa001 sera doncaffiché FA-001

# ###,00" €": un chiffre sera affichéavec 2 décimales, séparateur des milliers, suivi de €. 1526,3 deviendra 1526,30 €

4. Masque de saisie

Cette fonction Access est a utiliser avecprécaution. Le masque de saisie va obliger à rentrer des données suivant unformat prédéfini. Si vous créer un masque de saisie après avoir rentrer desdonnées, les valeurs seront vérifiées et éventuellement rejetées.

 

exemple

 

aucun masque de saisie, les données sont affichées telles que saisies

 

0

chiffre, signe + ou -, saisie obligatoire

masque 0000, le chiffre 123 est refusé, le chiffre +123 est accepté

9

Chiffre ou espace, la saisie est facultative

masque 9999, le chiffre 1 est accepté

#

chiffre ou espace, la saisie est facultative

 

L

Lettre, saisie obligatoire

?

Lettre, saisie facultative

A

lettre ou chiffre, saisie obligatoire

&

n'importe quel caractère (lettre, chiffre, ...), saisie obligatoire

C

n'importe quel caractère (lettre, chiffre, ...), saisie facultative

> 

Tous les caractères à droite du symbole sont convertis en majuscule

>LLL: 3 lettres obligatoires, automatiquement converties en majuscule

< 

Tous les caractères à droite du symbole sont convertis en minuscule

 

!

Masque rempli de droite vers gauche

\

le caractère est ajouté sous sa forme asci

/,.;:()

Caractères spéciaux utilisés tels quels dans le masque de saisie

masque LL-999: 2 lettres obligatoire, - ajouté automatiquement, 3 chiffres facultatifs

Exemple: 

·                   le masque LL-000 oblige à rentrer 2 lettressuivis de 3 chiffres.

·                   le masque CC/CCC permet de rentrer 5 caractèresmaximum. Les 2 premiers sont suivis du symbole /

5. Valide Si.

Sans rentrer dans trop de détails, cettepropriété permet de créer une règle pour les messages. Par exemple:

> 2000: chiffre obligatoirement supérieur à 2000

> 25/02/2009: champ date, la date doit être supérieure au 25 février 2009

Pour combiner 2 conditions de validité, vous pouvez utiliser ET et OU.

  • ET nécessite que les 2 conditions sont vérifiées
  • OU nécessite qu'au moins un condition soit vérifiée.

Exemple: un champ date >=01/01/2000 ET<01/01/2011 n'acceptera que les dates comprises entre le 01 janvier 2000 etle 31 décembre 2010 (=< 01/01/2011)

6. Message si erreur

Ceci permet d'afficher un message dans le casd'une donnée non valide (dans le cas de l'utilisation de Valide si). Parexemple, si la règle d'une date est >01/01/1900 et le message: erreurd'encodage, la date doit être supérieure à 1900. En cas de date inférieure, lafenêtre suivante apparaît:

7. Null interdit

Cette fonction fort utile permet d'obligerl'utilisateur à rentre une valeur (cas null interdit: Oui). Elle travaillesouvent en coordination avec la fonction suivante: Chaîne vide autorisée quipermet de rentrer un espace au lieu d'une valeur.

8. Chaîne vide autorisée.

Cette commande permet d'autoriser à rentrerl'utilisateur de la table access à rentre un espace comme valeur dans un champ.Cette possibilité est souvent utilisée avec la commande Null interdit. En acceptantles 2 propriétés, vous obligez l'utilisateur à rentrer une valeur, maisautorisez de rentrer un espace dans des cas exceptionnels.

9. Indexé.

Cette commande permet directement de trier unchamp en ordre croissant. L'option avec ou sans doublon est une contraintesupplémentaire. Si vous choisissez sans doublons, la table refusera de rentrerla même valeur dans le champ pour 2 enregistrements différents de la tableaccess. Mieux vaut généralement utiliser une requête pour cette fonction

10. Compression unicode.

Oui par défaut. Access utilise le codage unicodequi enregistre les lettres sur 2 octets (au lien d'un). Ce système permetd'afficher les caractères dans n'importe quelle langue. Malheureusement, cecidouble la taille des caractères enregistrés. La compression va compenser enpartie ce doublement d'espace. Cette caractéristique n'est affichée que pourles champs de type texte, memo et liens hypertextes.

11. Exemple de contraintes d'un champ

Comme les possibilités sont multiples, nousallons essayé quelques exemples de ces caractéristiques des champs Access.

11.1. Champ texte

A. Imposer de rentrer une valeur à chaque fois:

Null interdit: Oui - Chaîne vide autorisée: Non.

B. Imposer de rentrer 2 lettres, suivi de 3 chiffres mais afficher leséparateur - et lettres transformé en majuscule. Exemple: MA516 rentrer.

Taille du champ: 5 - Masque de saisie: >LL\-000

11.2. Champ Access numérique

A. Champ numérique compris en 10 et 100

Type numérique, type entier long - Valide si: >10 ET <100

11.3. Champ Access de type Date

A. Date obligatoire comprise supérieure au 01/01/2005

Valide si: >01/01/2005 - Null interdit: Oui - Chaîne vide autorisée: Non

B. Année

    Un cas particulier, vous ne souhaitez que l'année.Plusieurs solutions sont possibles.

  • Champ numérique avec valide si supérieur à 2000 par exemple pour année comprises entre 2001 et ..., décimales: 0 + masque de saisie: 0000
  • Champ texte avec les mêmes solutions, + longueur du champ 4. 

La première solution permettra de faire des calculs (exemple, + 3 ans)

12. Quelques remarques

Les contraintes et formats d'affichage des champsd'une base de donnée Access peuvent être implantés soit dans la table, soitdans le formulaire (éventuellement dans les états). Ceci est laissé au librechoix suivant votre application. Néanmoins, si vous imposez les contraintesdans la table, elles sont valables également pour les requêtes, formulaires,états, ... Dans le cas où ces contraintes sont rentrées directement dans leformulaire, elles ne sont valables que pour le formulaire. Rentrer des donnéesdirectement dans la table ou dans une requête n'imposera pas le masque desaisie, d'où un risque d'incohérence de données informatiques.

D'un autre coté, imposer une contraintedirectement dans la table va entraîner à long terme des problèmes deconception. Même si une base de donnée est généralement développée au départsans modifications futures, par expérience, on est amener à ajouter des champs (ouaugmenter la taille), souvent plusieurs années plus tard. Insérer lescontraintes directement dans la table risque de vous poser quelques problèmeslors de ces modifications de l'application informatique, notamment parce quelors de chaque changement de propriétés de champs, Access va vérifier si lesdonnées sont cohérentes. Vous risquez donc de perdre des données ou de devoirrevérifier manuellement tous les enregistrements que la table accepte lesmodifications, ce qui n'est pas le cas pour les formulaires.

 

10. Exemple de création de base de donnée ACCESS: la gestionfinancière d'un club

Dans ce tutorial Access, nous avons vus lesdifférentes parties de création d'une base de données. Voyons un cas plusexplicite comme exemple, la gestion financière d'une petite association:entrées et sorties globales ou par activité. Cette application a été développéepour le comité des fêtes de Lambermont mais vous pouvez l'adapter à n'importequel club sportif ou autre. Elle remplace les applications standards sous Excelqui montre vite ses limites lorsqu'il faut dissocier les différente sources derentrées et de sortie, notamment si vous voulez réellement suivre lesparamètres par activité. Le logiciel Ciel association peut dans certains cas vousconvenir (conforme notamment à la législation belge sur les ASBL) Vous pouvezégalement utiliser des logiciels de comptabilité de type CIEL Compta, maiscette méthode demande des connaissances en comptabilité des entreprises.

Si vous débutez sous Access (et dans les bases de données en général),vous pouvez au préalable lire notre tutorial Access en lignereprenant les différentes parties de la conception d'une base de donnée. Unautre exercice Access est repris en récapitulatif des formationsAccess de niveau 1.

2. Création de la table

 Commençons par créer une nouvelle base de donnée appelée club. Créonsune table appelée facturier reprenant les champs suivants:

  • Date, date format date réduit (date de la facture)
  • Année, texte, 10 (année de l'activité)
  • numero, entier simple (numéro dans le fcturier d'entrée ou de sortie)
  • type, texte,1 liste de choix, R (pour rentrée) ou S (Sortie)
  • description, texte 50 (une petite description de la facture)
  • Activité, texte, 50 (l'activité proprement dite, par exemple la fête du village)
  • Sous-activite, texte, 50 (une sous activité, par exemple la tombola de la fête)
  • montant, réel (le montant de la rentrée ou de la sortie)
  • payé, oui/non (suivi des payements)

Cette base de donnée va reprendre les entrées etsorties.

 Première modification, pour la date,rentrons en "valeur par défaut" la fonction Maintenant(). Ceciaffichera automatiquement la date du jour, mais pourra être modifiée.

Deuxième modification, pour le champ type, créons une liste de choix.

Sélectionnons "Je taperais les valeurs souhaitées" (la deuxièmepossibilité sera vue ci-dessous).

Sélectionnons une seule colonne.

Le deuxième onglet est automatiquement modifié.Dans "Contenu", tapons simplement R;S. Le ; sert à séparer lesdifférents choix possibles. Il nous restera à mettre sous l'onglet Général, R(Rentrées) comme valeur par défaut, en espérant avoir plus de Rentrées quede Sorties.

Enregistrons notre table, ne créons pas de cléprimaire.

Une petite remarque, de par sa conception, cettebase de donnée est utilisable les années à la suite de l'autre. Il n'est pasnécessaire de recréer une base de donnée chaque année. Ceci permettra de fairedes comparaisons sur une activité d'une année à l'autre.

3. Les requêtes, formulaire et état, utilisation de la base de données.

Pour la suite de cet exercice, créons une requête basée sur cette tabletriant les différentes lignes en ordre croissant sur la date appelée"date" à l'aide de l'assistant.

Créons maintenant un formulaire reprenant cette requête appelée"facture". Notre formulaire se présentera par exemple commeci-dessous.

Modifions notreformulaire pour nous faciliter encore un peu plus la vie. La date se metautomatiquement - à cause de la table, valeur par défaut maintenant(). Nejouons pas sur le numéro. 

Le type peut-être R pour rentrée ou S pour sortie. Nous avons bloqué ces 2possibilités sur la table mais nous pouvons également bloquer sur ces 2 valeursà l'aide du formulaire. Dans le menu Affichage, sélectionnons propriétés. Ensélectionnant le champ type, sélectionnons dans la fenêtre propriété et dans lapartie "Valide", tapons ="R" ou "S". Accessn'acceptera dans ce champ que r ou s (majuscule ou minuscule). Tapons égalementen valeur par défaut R

Nous pourrions faire de même avec le champ payé pour cocher la case pardéfaut.

Revenons à nos activités. Notre but est que pour chaque entrée / sortie, laligne rentrée désigne une activité: la fête, le barbecue, le souper annuel, …Pourquoi pas.

Plusieurs possibilités existent. Nous n'en verrons qu'une. Créons une tabledésignée par activité reprenant uniquement le champ activité. Dans cettetable tapons les activités suivantes:

  • Fête
  • barbecue
  • vtt

Reprenons notre table CLUB enmodification. Modifions le champ activité. Notre but est de choisir les donnéesdans une zone modifiables et de les reprendre directement dans le champ« Activité ». Les différentes possibilités sont inscrites dans latable activité. Cette solution sera plus facile s'il faut rajouter des activitésdans la table.

Sélectionnons "Je veux que la listemodifiable …et sélectionnons la table "Activité". Sélectionnons lechamp activité et le tour est presque joué.

Sélectionnons uniquement le champ activité.

Nous allons stocker la valeur dans le champ"activité".

Comme nom de champ choisissons activés.

Il nous faut encore organiser le déroulement desopérations par "Ordre de tabulations" dans le menu Affichage. Passonsen mode formulaire et rentrons quelques données. Enregistrons notre formulaireet vérifions dans la table si les données sont correctement rentrées. Et non,la table "Facturier" reprend le numéro de l'activité.

Revenons à notre formulaire en mode création.Sélectionnons les propriétés de notre zone modifiables et dans la case nbre decolonnes, sélectionnons 2 au lieu de 1. Ca marche.

Un dernier point, nous devons encore rentrerl'année manuellement. Il faudrait néanmoins la modifier chaque année. Utilisonsune autre méthode. Dans la table, sélectionnons année et tapons la fonctionsuivante dans la valeur par défaut: année(maintenant()), en respectantles parenthèses. Ceci demande de choisir l'année de la date du jour par défaut(l'année est donc modifiable), et ceci sera répercuté dans le formulaire.

Maintenant que nous pouvons rentrer des données,sans trop de problèmes, allons voire dans les états nos différentespossibilités.

Un premier état serait une feuille reprenant lesfactures payées par la caisse centrale ou non (en utilisant la case payée. DansAccess, nous devons passer par une requête. Créons là. Sélectionnons tous leschamps de la table facturier en sélectionnant d'abord année, puis date, puistous les autres. Pour les champs date et année, sélectionnons un ordrecroissant. Comme année est en premier dans l'année, il sera repris dans le trien premier. Sous la case "Payé", tapons dans la case critère lechiffre 0. Automatiquement, la requête n'affiche plus que ce qui n'est paspayé. Sauvons cette requête sous le nom "A payer". Passons maintenantà notre états. Ce ci va nous permettre d'imprimer les factures en entrées et ensorties non payées.

Créons un état à l'aide de l'assistant.Sélectionnons la requête "A payer" comme source et sélectionnons tousles champs. Dans la fenêtre suivante, sélectionnons un ordre de regroupementsuivant l'activité, puis suivant le type. Nous n'avons pas besoin de tri, ilssont déjà fait dans la requête de départ "A payer". Cliquons sur lebouton "Options de synthèse". Ceci affiche la fenêtre suivante.Cliquons sur la ligne "montant" dans la case Somme. 

Sélectionnons le mode de présentation qui nousconvient. L'aperçu de l'état affiche un tas de texte inutile. Modifions notreétat et supprimons le texte "= synthèse …" Diminuons égalementl'espace réservé. Ceci n'est déjà pas si mal, mais la somme globale en dessousreprend la somme des entrées et des sorties, ce que nous souhaiterionsmodifier. La solution est de rentrer systématiquement les sorties avec unmontant négatif. Ceci permet de vérifier les sommes que l'on doit recevoirdiminuer des sommes que l'on doit payer.

A ce stade, les activités sont reprises"années mélangées". Les comptes du VTT 2000 sont repris avec lescomptes du VTT 2001. Pas très intéressant. La solution est de créer un nouvelordre de regroupement sur l'année. Dans le menu Affichage, sélectionnons ordrede regroupement, dans la troisième ligne, dans la colonne champ/expression, sélectionnonsannée. Sélectionnons la ligne et montons avec le curseur jusqu'au dessus de"Activité. Dans les case de propriétés, sélectionnons entête de groupe etpieds de groupe sur Oui. En affichant la liste des champs, glissons le champannée dans la zone "Entête de groupe année". Faisons de même dans lepied du groupe année, en copiant le champ "Somme …) dans la zone au-dessuset en revenant dans la partie pied, utilisons la fonction copier. Ceci nousdonnera une somme par année.

Nous aurions pu utiliser le système ci-dessouspour regrouper par année. Je vous laisse le loisir de le faire à votre grés.

 Il est possible dans une requête defiltrer manuellement les champs. Créons une nouvelle requête à l'aide del'assistant, en utilisant la table facturier et en reprenant tous les champsles uns après les autres. Dans la zone critère sous la colonne année, tapons"[Année]". Dans la même ligne mais sous la colonne"Activité", tapons [activité]. Les pseudo champs créés ainsi nousposerons la question. Lorsque nous exécutons la requête, Access demande d'abordAnnée?, puis Activité? Et affiche uniquement les données qui correspondent àces 2 critères. Le pseudo champ doit impérativement être en 1 seul mot, maisvous pouvez utiliser des "_" entre les mots. [Année_activité]fonctionne. Par contre [année_de_l'activité] ne fonctionne pas à cause du caractèreaccentué ('). Sauvegardons cette requête sous le nom de résultat par activité.

Le seul problème vient du fait que cette requêten'affiche que les lignes, pas de totaux. Il nous faut effectivement créer unétat. Créons cet état à l'aide de cette requête en effectuant un regroupementsuivant le type (R ou S) et en utilisant les options de synthèses. Ceci nousdonne un état reprenant les entrées et les sorties de chaque activité. Vouspouvez même insérer dans votre état les pseudo champs (idem à ceux rentrés dansla requête).

Ce système est déjà pasmal mais nous souhaiterions le perfectionner. Ceux qui sont (ou ont été)trésorier d'un club savent que généralement on aime bien savoir ce qui se passeau sein même d'une activité: quel montant le bar a rapporté, … Nous arrivons auprincipal problème des bases de données: la modification. En effet, ajouter unchamp dans une table n'est pas très compliqué, mais nous allons devoir modifiertoutes les requêtes, formulaires et champs. Pour ma part, dans ce cas, jerecrée souvent directement toutes les autres parties à l'aide des assistants.

Quelques imperfections existent encore.Reprenons notre formulaire en mode Modification. Nous allons créer une zone deliste modifiable. Cliquons sur le bouton associé dans la boîte d'outils etcréons notre zone sur le formulaire. Access propose un choix suivant 3 options.Sélectionnons la deuxième, je taperai les valeurs souhaitées. Nombre decolonne: 1, stockons la valeur dans ce champ que nous sélectionnons comme"TYPE"

Donnons le nom type comme étiquette. Chaque foisque nous rentrons une valeur dans la zone modifiable type, la valeur s'insèredans le champ type. Nous souhaiterions n'avoir plus que 2 choix (R pourrentrées et S pour sortie). En modification, sélectionnons notre zonemodifiable. Avec la touche droite de la souris, sélectionnons la commande"propriété". Dans la zone Contenu, tapons"R";"S". En reprenant notre formulaire en mode formulaire,nous n'avons plus que le choix entre R ou S et le champ type est toujoursmodifié. Nous pouvons dès lors supprimer le champ type du formulaire. Il nousfaudra forcément organiser notre écran et éventuellement l'ordre de tabulationdans le menu Affichage.

Notre formulaire semble maintenant complet.Attaquons maintenant les Etats qui permettent d'imprimer les rapports. Lepremier va nous permettre de faire les comptes annuels. Nous pourrionsdirectement créer un état mais nous devons d'abord créer les filtres et dansAccess, la seule manière est de travailler sur les requêtes. Créons donc unerequête en mode création. Choisissons la table facture avec tous les champs etappelons cette requête "Par année". Modifions-là comme suit. Dans laligne critère sous le champ année, tapons =[année_des_activités]. attention debien respecter la syntaxe, pas d'espaces. En ouvrant la requête, Access poseautomatiquement la question année? Il suffit de rentrer l'année demandée, parexemple 2002 et seules les entrées – sorties de 2002 seront affichées. Pendantque nous y sommes, créons une deuxième requête qui demande l'année etl'activité. Pour cela, sélectionnons la requête "par année" avec latouche droite de la souris et sélectionnons "Copier". Ensuiteutilisons la commande "Coller". Access demande un nouveau nom derequête, répondons "par année et activité". Comme critère sous lechamp activité, tapons tous simplement =[activité_souhaitée]. Access demanderal'année et l'activité.

Dans la partie gauche, choisissons Etat et dansla partie droite … à l'aide des assistants. Sélectionnons la requête "parannée" et tous ses champs.

Sélectionnons année comme regroupement etSUIVANT. En tri, sélectionnons date (par exemple) et montant comme option desynthèse, la somme pour le champ montant. Le résultat sera par exemple commeci-dessous. Modifions notre état pour parfaire la lecture. Choisissons ladifficulté, modifions l'état existant. Nous allons une fois de plus utiliser labarre d'outils.

Dans la zone d'en-tête, insérons une zone detexte et dans cette zone, tapons [année_des_activités]. Nous pouvonséventuellement changer la mise en forme de ce champ (gras, hauteur supérieur.Une deuxième modification possible serait de dissocier par activité lesrentrées et les sorties. Nous aurions pu le faire à la création, maisfaisons-le directement en mode modification. Dans le menu Affichage,sélectionnons "Trier et regrouper". Insérons le champ TYPE et taponsOui en pied de groupe, déplaçons TYPE entre activité et date.

Insérons maintenant une zone de texte etremplaçons le terme indépendant par =somme([montant]) dans le pied de groupeTYPE. Nous pouvons créer le même ETAT pour la requête "par année etactivité". D'autres modifications sont possibles, 2 décimales dans lespropriétés des somme, insérer des pieds de page en bas de chaque groupementd'activité, …Je vous laisserai le faire.

4. Menu d'entrée

Créons une macro. Dans la partie gauche,sélectionnons "Ouvrir formulaire". Dans les propriétés, sélectionnonsle formulaire que nous souhaitons ouvrir. Enregistrons notre macro comme Ouvrirle formulaire. Créons une deuxième macro pour ouvrir l'état "Parannée". Sélectionnons la commande ouvrir état et en propriété ETAT par année.Dans la propriété Affichage, sélectionnons aperçu avant impression. Créions lamême pour l'état 'par année et activité.

Créons maintenant un formulaire en modecréation. Notre but n'est pas ici d'afficher des champs, mais de faire un menude départ.

Créons un bouton, sélectionnons comme choix"Divers", exécuter macro. Sélectionnez la macro Formulaire.Sélectionner soit un texte, soit une image de votre choix.. Tapez Formulairecomme nom de bouton. Faite de même pour les 2 autres macros.

Recréez un quatrième bouton. Sélectionnez lacatégorie Applications à gauche et Quitter une application à droite. Suivant.Sélectionner par exemple le panneau de sortie. Ceci permettra de quitterAccess.

Dans le menu OUTIL d'Access, sélectionnez lacommande "Démarrage".

Comme "Afficher …" SélectionnezPrincipal. Le reste est de la mise en page. A partir de maintenant, en cliquantsur l'application, le menu principal apparaîtra en premier et les différentsétats et formulaires seront accessible par les boutons.

 

11. Liste de choix Access

Une liste de choix permet de sélectionner unevaleur pour un champ dans une liste de valeurs possibles. Selon laconfiguration du champ, la liste peut-être limitative ou non (vous ne pouvezchoisir qu'une valeur de la liste ou pouvez en proposer d'autres). Même si unebrève introduction dansles tables Access a déjà survolé ces listes, il est temps de voire les 3méthodes distinctes de création d'une liste de choix pour un champ Access.

  • La première méthode consiste à créer manuellement la liste. Cette solution est la plus simple pour un petit nombre de valeur mais oblige dans la pratique à modifier la structure de la table pour ajouter, modifier ou supprimer un choix de la liste. Cette solution n'est donc à utiliser que pour de petites listes non variables.
  • La deuxième solution utilise directement une table (ou une requête) pour récupérer les données. Cette méthode est relativement souple, un simple menu reprenant la table permet de modifier les données de la liste. Cette méthode passe éventuellement par une solution SQL.
  • La dernière solution est la plus évolutive, puisqu'elle permet de reprendre dans une table les valeurs précédemment tapées. Cette solution est la plus difficile à appliquer, mais n'impose pas de modifier la table à chaque nouvelle entrée. Par contre, elle ne permet pas de limiter à une liste définie à l'avance.

2. Liste de choix par valeurs souhaitées.

Cette solution est la plus simple. Créons unenouvelle table appelée adresse par exemple. Dans cette table créons un champtitre dont les valeurs possibles sont:

·   Monsieur

·   Madame

·   Monsieuret Madame

·   Mademoiselle

Débutons par créer le champ, dans le type dedonnées, sélectionnons: Assistant liste de choix

La première question reprend le type de liste dechoix que vous souhaitez créer. Dans cette première partie, nous allonssélectionner "Je taperai les valeurs souhaitées"

Sélectionnez 1 colonne, nous étudierons le casde plusieurs colonnes ci-dessous. Cliquez sur le bouton terminer. Rien n'al'air d'avoir été créé, le type de champs est même redevenu texte. Access n'apas tapé les valeurs possibles à votre place, le gestionnaire de base de donnéea juste "préparé le terrain". Dans la partie propriété du champtitre, sélectionnez Liste de Choix. Il ne reste plus qu'à taper les valeurssouhaitées séparées par le caractère ";".

En passant en mode Affichage, la liste apparaîtlorsque vous essayez de rentrer une valeur dans le champ Titre.

3. Propriétés des Listes de Choix

Nous pouvons également utiliser les propriétésdu champ titre pour créer des contraintes sur ce champ. Pour le champ titre,reprenons les propriétés de la liste de choix.

  • Afficher le contrôle: Cette fonction permet de déterminer comment la liste de valeurs est affichée dans les formulaires et tables Access. Le choix va également modifier la liste des propriétés.

Zone de liste déroulante:

Zone de liste

Zone de texte

supprime la fonction

·   OrigineSource

Cette propriété permet de sélectionner lamanière dont les données sont récupérées dans la liste déroulante.

Nous reparlerons dans le bas de ce chapitre desdifférentes possibilités.

  • Contenu. Spécifie le contenu de la liste de choix, une liste de valeurs tapées, table requête, ...
  • Colonne liée et nombre de colonnes.
    Lorsque vous créez une liste de choix, vous pouvez demander de rentrer les données dans 2 colonnes (ou plus). Cette possibilité permet d'afficher 2 colonnes pour la liste de choix. Normalement, Colonne liée devrait permettre de sélectionner la ligne contenant plusieurs colonnes et d'insérer comme valeur la deuxième la deuxième.
  • Entête de Colonne: cette propriété permet d'afficher la première ligne comme en-tête de colonne.
  • Largeur de colonne: permet de spécifier la largeur en centimètre de la colonne de choix.
  • Lignes affichées (zone de liste déroulante uniquement): Cette propriété permet de choisir le nombre de lignes affichées sans ascenseur dans les zones de listes déroulantes.
  • Largeur Liste (zone de liste déroulante uniquement): permet de déterminer en centimètres la largeur de la liste.
  • Limiter à liste (déroulante uniquement): permet de limiter les valeurs à sélectionner uniquement à la liste reprise ci-dessus. Cette possibilité est utile dans de nombreux cas. 

Pour rappel, dans les propriétés du champ, vouspouvez également utiliser la propriété Null Interdit et surtout Chaînevide autorisée. Ceci permet de taper un espace comme valeur.

4. Liste de choix par table

La deuxième possibilité de créer une liste dechoix utilise une table (éventuellement une requête pour un classement en ordrecroissant). Cette possibilité permet de créer une table reprenant tous leschoix possibles. Pour ajouter ou modifier des données, il suffit de modifier latable.

Commençons par créer une table reprenant nosdifférentes possibilités. Cette table que nous appellerons TITRE ne contientqu'un seul champ, que nous appellerons Titre, également clé primaire.

Rentrons dans cette table les différentespossibilités: Monsieur, Madame, ...

Reprenons la table adresse et pour le champtitre, modifions les propriétés du type pour sélectionner "Assistant Listede choix". Sélectionnons "Je veux que la liste de choix rechercheles valeurs dans une table ou une requête".

Comme table, sélectionnons notre table Titre etsélectionnons le champ titre.

Ajustons la taille de la colonne pour reprendrel'ensemble des données à l'affichage. Et voilà. Notre liste de choix est créée.De plus comme le champ titre de la table Titre est déjà triée par ordrecroissant, il n'y a plus aucune opération à faire.

5. Liste de choix par requête de regroupement.

Cette possibilité va nous permettre de reprendreles données dans une requête, sauf que la requête est de type regroupement.Cette solution permet de rentrer des valeurs dans notre table adresse, mais laliste de choix va reprendre toutes les valeurs possibles précédemment créées.C'est la solution la plus souple.

Créons une simple requête comme ci-dessous

Ajoutons simplement la table Adresse. Dans la barre d'outils, sélectionnons . Cette possibilité va créer une requête de regroupement. De ce fait, notre requête (appelons-là titre regroupement) va reprendre toutes les données déjà tapées dans la table Adresse pour le champ Titre. Comme tri, sélectionnons Croissant.

Il ne nous reste plus qu'à créer une liste dechoix dans la table adresse reprenant cette requête. N'oubliez pas de mettre lapropriété de la zone de liste, limiter à liste sur non.

Exemple d'utilisationdes listes de choix.

 

 

12. Création de Macro par le menu

1. Qu'est ce qu'une macro?

Une macro reprend une ou plusieurs commandesAccess exécutées les unes à la suite des autres, chacune exécutant une tâcheprécise. Les actions exécutées peuvent être l'ouverture (la fermeture) d'unformulaire, imprimer un état ou rafraîchir la fenêtre en cours par uneprocédure événementielle.

Dans le chapitre 7 de cette formation, nous avons utilisé l'aide de l'assistant pourcréer un menu de démarrage. Cette méthode pour créer une macro a l'avantaged'être simple et le défaut d'avoir un choix d'actions limitées.

L'autre possibilité utilise le menu Macro. Cettesolution permet d'autres choix, mais également de faire exécuter plusieursactions les unes derrière les autres. Nous verrons dans le chapitre suivant queces macros sont surtout utilisées dans les procédures événementielles. Analysertoutes les macros Access serait trop long, ce chapitre reprend donc lesprincipales.

Nous n'utiliserons pas dans cette formationAccess les modules, plus spécifiques à la programmation.

Une dernière remarque, à la différence desmacros de Word ou d'Excel, une macro Access n'est pas enregistrée en suivantvos actions mais bien en sélectionnant les commandes disponibles.

2. Notre première macro

Commençons par une création simple. Sélectionnonsle menu Macro et cliquons sur le bouton Nouveau. La fenêtre suivante apparaît.

La fenêtre Macro est divisée en 3 parties:

  1. la partie action, en haut à gauche (en gros une liste de choix), reprend la liste des commandes disponibles.
  2. une partie commentaire optionnelle
  3. en dessous les options en fonction de l'action sélectionnée.

Nous allons créer une macro qui ouvre unformulaire pour débuter.

Sélectionnons comme action "OuvrirFormulaire"

Dans la partie en bas, sélectionnez leformulaire à l'aide de la liste déroulante. Comme mode d'affichage, vous avezle choix entre: Formulaire (le mode standard), création (modification duformulaire), aperçu avant impression, feuille de données, ...

Vous pouvez également créer un filtre ou unecondition ou sélectionner le mode Données:

  1. Ajout
  2. Modification
  3. Lecture seule

Cette macro peut être utilisée avec un bouton(cf. le chapitre 7 de cette formation) ou comme procédure événementielle (lechapitre suivant).

3. Macro d'ouverture et fermeture.

Commençons par les macros permettant d'ouvrir oude fermer une table, une requête, un formulaire ou un état. Le principe est lemême pour toutes.

Les procédures d'ouverture commencent toutes parouvrir

3.1. Ouvrir une table: OuvrirTable

Cette macro n'est pas très différente de la macroci-dessus qui ouvrait un formulaire. Elle est même plus simple. Un premierpoint intéressant est le mode d'ouverture: ajout (uniquement ajoutd'enregistrement), modification (ajout, lecture et modification, c'est le modequi offre le plus de possibilités), lecture seule (pas de modificationpossible).

L'utilisation de la macro d'ouverture d'unerequête OuvrirRequête est parfaitement identique.

3.2. Ouvrir un état: OuvrirEtat

Cette macro d'ouverture d'état est similaire àcelle d'une table ou d'une requête. La seule distinction vient du modeaffichage qui peut être en impression directe (immédiate) ou Aperçu avantimpression. Dans ce dernier mode, l'utilisateur doit confirmer la demanded'impression. Cette option est préférable, elle évite des erreurs de choix quiimprimeraient des dizaines de pages inutiles.

3.3. Fermer

Toutes les commandes de fermeture sontrassemblées sous 1 seule macro: Fermer. Le choix du type et du nom de l'objetse définissent dans les options de la commande.

4. Macro de recherche

Sont regroupées ici les commandes permettant derechercher des données à l'aide d'une macro dans une table, requête ouformulaire actif. L'utilisation de ce type de commande nécessite donc uneouverture de formulaire, table ou requête dans la même macro au préalable oul'utiliser.

Les options de la commande macro TrouverEnregistrementsont similaires aux recherches manuelles d'Access.

Pour continuer la recherche, vous pouvezutiliser la commande TrouverSuivant qui ne possède pas d'options.

5. Macro de déplacement

La commande AtteindreEnregistrement estparfaitement identique au bouton de navigation et de recherche Access. Lacommande AtteindrePage permet de se déplacer dans les pages d'un état.

6. Quelques macros spéciales

Comme le but de ce cours Access n'est pasd'analyser toutes les macros, je rassemble ici quelques macros spécifiquesutilisées dans des cas spéciaux.

6.1. Actualiser.

Actualiser permetd'actualiser les données de la table en cours ou même des tables et requêtesutilisées par le formulaire actualisé. Elle évite de fermer et de redémarrer leformulaire en cours. Nous l'utiliserons régulièrement dans les exercices.

Le Nom de contrôle permet de ne réactualiserqu'une valeur du formulaire.

6.2 Transférer en Excel (importer ou exporter)

Cette commande permet d'importer une feuilleExcel comme table dans Access ou de transférer une table ou une requête vers unfichier Excel. Le nom du fichier - feuille excel et table - base de donnéeAccess doit être mentionnée.

6.3. Sélectionner objet

Cette dernière commande SélectionnerObjet permetde sélectionner un objet (état, formulaire, requête ou table) en cours detravail. Elle est utilisée en combinaison avec les fonction de rechercheci-dessus par exemple.

7. Exemples de Macro.

Pour rappel, les macros peuvent être utilisées àl'aide de bouton ou à l'aide de procédures événementielles (un click sur unobjet par exemple, ce sera le prochain chapitre). Nous nous intéressons ici auxmacros développées pour les boutons. D'autres exemples de macros sont reprisdans l'utilisation de la barre d'outils ci-dessous.

7.1. Macro ouvrant un formulaire et fermant le formulaire précédant.

Soit un formulaire "Menu" dedépart" et un bouton ouvrant le formulaire "facture" en modelecture seule. Ce type d'application assez classique va utiliser 2 lignes decommande:

A. La commande pour fermer le formulaire Menu

B. L'ouverture du formulaire"Facture". N'oubliez pas l'option "Lecture seule" quiempêche toutes modifications des données.

Enregistrer votre macro. Pour créer le bouton,utilisez la procédure vue précédemment et sélectionner la macro créée

7.2. L'impression d'un état avec retour au formulaire de départ.

Cette macro va utiliser 1 lignes de commandes,éventuellement 2

A. Ouverture de l'état en impression directe(sans aperçu avant impression)

B. Dans le cas ou plusieurs formulaires sontouverts simultanément, vous pouvez rajouter la commande de sélection suivante.

Ajustons la taille de la colonne pour reprendrel'ensemble des données à l'affichage. Et voilà. Notre liste de choix est créée.De plus comme le champ titre de la table Titre est déjà triée par ordrecroissant, il n'y a plus aucune opération à faire.

8. La barre d'outils macro.

Cette barre d'outils Access comporte de nombreuxpetits utilitaires qui vont nous permettre de tester nos macros.

  1. Noms de macros permet de faire des "sous-macros", de créer une macro regroupant plusieurs macros internes
  2. Conditions: permet de créer une ou plusieurs conditions pour l'exécution de commandes.
  3. Insérer une ligne permet d'insérer une commande entre 2 lignes d'une macro.
  4. Supprimer une ligne permet de supprimer une ligne de commande
  5. Exécuter permet d'exécuter la macro en cours.
  6. Pas à pas permet d'exécuter votre macro ligne par ligne
  7. Assistant création n'est accessible que si vous créez une condition d'exécution de la ligne de commande.

8.1. Nom de la macro.

Cette fonctionnalité permet de créer une macrorassemblant plusieurs procédures et de choisir l'exécution d'une ou l'autreselon les besoins. Cette possibilité permet notamment de ne créer qu'un fichiermacro pour l'ensemble ou une partie de votre base de donnée Access.

Créons la macro suivante qui va ouvrir leformulaire "client" en mode ajout, ouvrir le formulaire"Facture", imprimer l'état "YBET" en mode direct etresélectionner le formulaire facture.

1.  Ouverturedu formulaire client

2.  Ouverturedu formulaire facture

3.  Imprimerl'état YBET  

4.  Sélectionnerle formulaire facture:

Cette macro pourrait être utilisée telle quelle.Pourtant, nous désirons scinder notre macro: utiliser les 3 dernières lignes dela macro ensemble. Nous allons donner un nom de macro à partie de la deuxièmeligne. Cliquer sur le bouton "Nom de macro" dans la barre d'outilsfait apparaître une colonne en plus. Tapons formulaire macro en regard de notredeuxième ligne de commande.

En registrez cette macro sous le nom"formulaire" et créons un nouveau formulaire de menu. Créons unbouton de navigation et sélectionnons comme commande Divers - exécuter unemacro. La liste des macros disponibles apparaît de la manière suivante:

·     Formulairen'exécute que la première ligne de commande

·     Formulaire.formulairefacture les 3 dernières lignes de commandes de notre macro

Cette méthode ne permet donc pas de mélanger desmacros, sauf que nous aurions pu insérer une ligne de commande "Exécutermacro":

8.2. Condition

Cette possibilité va nous permettre de créer desconditions pour qu'une ligne de commande s'exécute.

Supposons dans un formulaire de rentrée desfactures que nous souhaitons un message dans le cas où le code du client estnul. Sélectionnez le bouton "Condition" et utilisez l'assistant:

La macro devient:

s

Enregistrez la macro sous le nom condition, parexemple. Si nous exécutons la macro condition alors que le champ code clientest vide, le message suivant est affiché.

9. Pour terminer.

Créer une macro Access n'est pas trèscompliquée. L'utilisation de ces lignes de commandes à l'aide d'un bouton adéjà été vue. Un chapitre suivant (procédures événementielles) va aller plusloin dans l'utilisation des macros puisque nous allons pouvoir créer unévénement automatique en fonction de différents critèr

 

13. Formulaire avancé Access

Dans un précédant chapitre, nous avons vu commentcréer un formulaire Accessde base ou même de le personnaliser un peu. Cette partie de la formation vautiliser quelques propriétés avancées des formulaires et nous permettred'insérer d'autres objets.

Commençons par créer une nouvelle base de donnée de type fichierd'adresse (éventuellement à l'aide de l'assistant de Microsoft) comportant unetable reprenant minimum les champs suivants: Titre, nom, prénom, adresse,code-postal, ville et téléphone. Enregistrez cette base de donnée sous le nomAdresse par exemple.

Créer un simple formulaire reprenant cette tableà l'aide de l'assistant. Reprenez ce formulaire en mode modification. Ildevrait se présenter comme ci-dessous:

A ce stade de notre formulaire, rien de biencomplexe. La suite va nous permettre de personnaliser notre formulaire. Nousallons utiliser une large partie de la barre d'outils de création deformulaire:

Certaines parties cette barre d'outils Accessnous sont déjà familières.

  • Sélection: permet de sélectionner le contenu d'une zone.
  • Assistant contrôle permet de travailler ou non avec des contrôles, c'est une aide précieuse pour la création 'un formulaire.
  • Texte (étiquette) et champ ont déjà été utilisé dans le chapitre sur les formulaires et les champs calculés.
  • Bouton bascule, bouton à cocher et Case à cocher ont la même fonction, seule la présentation change. Ces boutons sont à utiliser dans des champs de type "Oui/non"
  • Groupe d'options
  • Zone de liste modifiable et zone de liste ont été utilisés lors de la création de listes
  • Bouton de commande: l'utilisation des boutons dans les formulaires a été vu dans le chapitre macro de base
  • Image: permet d'insérer une image fixe, un logo par exemple
  • Cadre d'objet indépendant permet d'insérer un objet venant d'une autre application indépendamment du contenu
  • Cadre d'objet dépendant permet d'insérer un objet d'une autre application mais dépendant de l'enregistrement
  • Saut de page, permet de couper le formulaire ou l'état en pages
  • Contrôle d'onglet: permet d'insérer des onglets sur un formulaire pour afficher plus d'informations
  • Sous-Formulaire a été utilisé dans les bases de données relationnelles
  • Ligne et rectangle ont déjà été utilisé dans le chapitre sur la création d'un formulaire de base
  • Autres contrôles: une liste de contrôle que nous n'aborderons pas.

2. Première mise en forme de notre formulaire

Pour débuter, commençons par modifier notreformulaire en insérant un logo (bouton image), un titre pour notre formulaire(bouton titre), un rectangle autour du nom et une ligne de séparation. Commeces possibilités ont déjà été vues dans les formulaires de bases, je ne lesvois pas en détail. Le formulaire modifié devrait ressembler à ceci:

3. Groupe d'options

Un groupe d'options permet de choisir une valeurdans une liste prédéterminée. Son utilisation est donc similaire à celle d'unezone de liste ou d'une zone de liste modifiable. La seule réelle différencevient de l'affichage. Dans un groupe d'option, toutes les valeurs possiblessont affichées. Dans une zone de liste, vous devez cliquez sur la case dedroite pour les afficher.

Comme exercice, nous allons créer une option quiva déterminer les titres possibles. Si ce n'est pas fait, cliquez sur le boutonAssistant contrôle dans la boîte d'outils pour utiliser l'assistant. Cliquezensuite sur le bouton "groupe d'options". Nous allons commencer parremplir les différentes possibilités.

L'étape suivante nous permet de donner unevaleur par défaut à notre groupe d'option.

La question suivante va nous permettre dedéterminer le numéro de chaque possibilité (notre exemple n'est donc pas trèsutile puisqu'il ne permet pas d'enregistrer directement le texte dans le champmais bien un numéro). La solution passera par une macro par exemple pour letransfert.

Pour la suite de notre exercice, nous allonsinsérer la valeur dans le champ titre.

La dernière étape va nous permettre depersonnaliser notre groupe d'options: le type de contrôle pour l'aspect desboutons, le style pour les encadrements.

Et voici le résultat final

4. Insertion d'un nouveau champ dans notre formulaire.

Pour la suite de la personnalisation de notreformulaire, nous allons insérer dans notre table un nouveau champ"Professionnel" de type Oui ou Non.

Après avoir enregistré la table, reprenons notreformulaire en mode modification. Nous souhaitons insérer ce champ dans notreformulaire existant.

Nous avons 2 possibilités, soit par le menuaffichage et la commande Liste des champs en déplaçant la ligne professionnelvers notre formulaire (Access crée automatiquement une case à cocher), soit enutilisant les propriétés avancées.

Insérez un bouton bascule sur votre formulaire.

Pour définir les propriétés de ce bouton,sélectionnez la commande propriété dans le menu contextuel du bouton (touchedroite de la souris). Comme nom, vous pouvez garder celui proposé ou tapervotre propre nom (par exemple professionnel bouton). Comme source de contrôle,utilisez la flèche de liste à droite pour sélectionner professionnel. Pourinsérer du texte sur le bouton, double-cliquez dessus et taper votre texte.Cette possibilités s'utilise de la même manière pour un Bouton bascule, boutonà cocher et Case à cocher

Pour un champ standard (pas de type Oui/non),vous pouvez insérer une zone de texte et modifier les propriétés de la même manière.

5. Cadre d'objet indépendant

Cette fonctionnalité, peu utilisée dans Access,permet d'insérer un objet OLE dans un formulaire (ou un état). Un objet OLEreprend par exemple de la musique, vidéo, clipart et images diverses, graphiqueExcel, ... Dans ce cas ci, l'objet est équivalent sur toutes les pages de notreformulaire (il est indépendant), quelque soit l'enregistrement.

Cliquez sur le bouton Cadre d'objet indépendantdans notre formulaire d'adresse (en mode modification):

Vous pouvez soit utiliser un objet existant,soit créer un nouvel objet (généralement modifiable par double-click suivantl'OLE).

6. Cadre d'objet dépendant

Dans ce cas, l'objet inséré sur notre formulaireva dépendre de l'enregistrement. Nous allons utiliser cette possibilité pourafficher la photo de la personne reprise dans notre base de donnée Access.Quitter le formulaire et reprenez la table Adresse en mode modification. Nousallons insérer un nouveau champ dans notre Table Access de type OLE.

Quittons le mode création pour reprendre notretable en mode feuille de données. Pour insérer la photo de la personne,positionnez le curseur sur le champ Photo et par le menu Insertion,sélectionnez la commande Objet. En cochant "A partir du fichier",vous pouvez maintenant lier la photo de votre correspondant avec sa fiche détaillée.Pour afficher la photo, double cliquez sur le champ de l'enregistrementcorrespondant.

Revenons maintenant à notre formulaire. Inséronsun cadre d'objet dépendant en utilisant la barre d'outils. Utilisez la touchedroite de la souris pour afficher les propriétés de l'objet et sélectionnezPhoto comme source de contrôle.

Voici le résultat:

7. Contrôle d'onglet

Un contrôle d'onglet va nous permettre dedissocier les informations associées en un ensemble de sous fenêtre tout à faitsimilaires aux fenêtres à onglet de Windows. Les formulaires à Onglets sontutilisés pour dissocier des informations d'un enregistrement ou pour clarifierl'affichage.

Cliquez sur le bouton "Contrôled'onglet" dans la barre d'outils de création de formulaire. Délimitez lazone d'onglet sur votre formulaire. Vous devriez obtenir quelque chosesimilaire à ceci

Pour sélectionner l'onglet Page100 commel'exemple ci-dessus, cliquez simplement sur le nom. Pour insérer un champ, unobjet, suivez la même procédure que ci-dessus. Par contre pour déplacer unobjet du formulaire vers l'onglet, vous devez faire un copier - coller. Pourchanger le nom de l'onglet, utilisez le menu contextuel (touche droite de lasouris) pour afficher les propriétés et changer la propriété Nom. D'autrespossibilités existent par ces mêmes propriétés.

 

 

 

Cours: 14. Partage Access en réseau

La base de donnée Access est directementutilisable en réseau local. Il n'y a donc à priori pas de réglage à faire pourpartager une base de donnée Access, si ce n'est partager le dossier pour donnerl'accès à chacun, mais c'est assez théorique, ce serait trop facile. Le partageréseau n'est pas le point fort d'Access, surtout si vous essayez avec un nombreimportant d'utilisateurs connectés simultanément.

Petit rappel sur les réseaux informatiques. Pour installer un petitréseau, il faut comme matériel: une carte réseau implantée dans chaqueordinateur, une connexion entre ces PC, via un switch et des câbles RJ45. Cesconnexions sont expliquées dans connexionréseau RJ45. Le cours hardware 2 reprend des renseignements complémentairesconcernant les installations réseaux.

Une fois le réseau câblé, il vous fautparamétrer les différents ordinateurs. On trouve 2 types de réseaux locaux: les"postes à postes" (peer to peer) utilisable par tous lessystèmes d'exploitation Microsoft et les réseaux "clients-serveurs"utilisant un serveur sous 2003 ou 2008. Dans le premier cas, ceci ne nécessitepas d'ordinateurs particuliers. Chaque ordinateur d'un réseau poste à poste estéquivalent et partage ses dossiers et imprimantes. Cette facilité se fait audétriment de la sécurité. Microsoft limite de toute façon le nombred'ordinateurs connectés simultanément dans les versions standards de Windows XPet Vista à 10. Dans le premier cas, le partage se fait entre des ordinateurs dumême groupe de travail. Dans le deuxième cas, le partage se fait dans un même nom de domaine.

Une fois les ordinateurs correctement installés,il ne reste plus qu'à copier la base de donnée dans un dossier partagé accessibleaux utilisateurs concernés.

2. Gestion des conflits.

Le partage réseau en ACCESS va donc permettre detravailler simultanément sur la même base de donnée. Cette possibiliténécessite quelques règles. Lorsque la base de donnée est en lecture, peu de problèmesde conflits. Par contre, il se pourrait très bien que 2 utilisateurs modifientle même enregistrement en même temps. Dans ce cas, Access va bloquerl'enregistrement tant que le premier utilisateur sera en mode modification.

Remarque, si vous n'avez pas de réseauinstallé, vous pouvez démarrer 2 fois la même base de donnée. C'est la méthodeque nous allons utiliser dans ce cours.

2.1 Modification d'un enregistrement.

Dans l'exemple ci-dessus, Nous avons modifié lechamp titre d'un enregistrement par une instance de la base de donnée. Parcontre, l'autre affichage n'est pas modifié. Par contre, si l'utilisateuravance à l'enregistrement suivant et revient à cet enregistrement, lesnouvelles données sont effectivement affichées.

2.2. Modification simultanée du même enregistrement.

Ouvrez le même formulaire simultanément dansnotre base de donnée facture et modifiez le même enregistrement par les 2fenêtres. Automatiquement le message suivant va apparaître lorsque le deuxièmeutilisateur va quitter l'enregistrement:

Si vous sauvegardez l'enregistrement, lesmodifications effectuées par le précédant utilisateur sont écrasés pour toutl'enregistrement (même si vous ne modifiez pas les mêmes champs). Cetteméthode de travail est donc dangereuse.

3. Mode de verrouillage.

Les problèmes rencontrés ci-dessus viennent duverrouillage par défaut. Dans le menu outils, sélectionnez la commande Option,et finalement l'onglet Avancé. Cette partie va nous permettre de modifier lamanière dont Access gère ces conflits en réseau.

3.1. Mode d'ouverture par défaut. 

Le mode partagé permet l'accès deplusieurs utilisateurs du réseau en même temps sur la base de donnée. Parcontre, le mode exclusif ne permet qu'un seul utilisateur à la fois. Cemode est utilisé pour la maintenance d'une base de donnée Access par exemple.

Pour rappel, la commande ouvrir permet égalementde se connecter sur une base de donnée Access en mode exclusif.

3.2. Verrouillage par défaut.

Aucun ne bloque pas les modificationssimultanées. C'est le mode par défaut, c'est la raison des messagesd'avertissement plus haut.

Général n'est pas souvent utilisé puisquesi un utilisateur modifie un enregistrement, ACCESS bloque complètement latable.

Enregistrement modifié ne bloque l'accèsen modification qu'à l'enregistrement en cours de modification.

Après avoir quitté Access et redémarré les 2bases de données, la modification du même enregistrement par 2 utilisateurs enmême temps fournit ce message. Tant que le premier utilisateur n'aura pas finitla modification, l'utilisateur 2 n'aura pas l'accès à l'enregistrement.

4. Pour terminer

Le partage réseau d'une base de donnée Accessest relativement simple. Même si Access est nativement en réseau, lespossibilités de partages sont relativement faibles, la base de donnée restelimitée au niveau nombre d'utilisateurs connectés simultanément, Microsoftdéveloppant une autre base de donnée plus complète et plus complexe (SQL),Microsoft Access est volontairement limité au nombre d'utilisateurs simultanés:une dizaine me semble déjà beaucoup. La partie suivante va permettre de bloquerles accès utilisateurs mais il ne sert à rien d'accéder aux données via un motde passe si n'importe qui peut supprimer le fichier. Sécurisé l'accès audossier est la première étape de la sécurisation sous Access.

 

15. Sécurité Microsoft Access

Dans le chapitre précédant, nous avons vu le partage réseau d'une base dedonnée Access. Cette possibilité peut entraîner de graves problèmes desécurité au niveau des données. Quiconque a accès au dossier partagé aégalement un accès complet à toute la base de donnée Access. Pour éviter qu'unutilisateur ne supprime les informations que vous avez patiemment récoltéesdans votre base de donnée, il est préférable de créer des groupesd'utilisateurs ayant chacun des droits d'accès bien délimités.

Lorsque vous vous connectez sur une base de donnée, Access ouvreautomatiquement un groupe de travail. Ce groupe de travail définit desutilisateurs et des groupes d'utilisateurs. Un utilisateur se connecte grâce àun login (compte utilisateur) et un mot de passe. Chaque utilisateur est reprisdans un groupe d'utilisateurs qui rassemble les utilisateurs de même profil.Les membres d'un même groupe ont les mêmes droits. Lorsqu'une sécurité auniveau utilisateur est mise en oeuvre, l'accès à la base de données passe parun mot de passe au démarrage. Microsoft Access lit alors le fichier de groupede travail qui inclut les droits d'accès de chacun. C'est la solution standardde sécurité en réseau.

Remarque: si vous ne créez pas de profilsutilisateurs, vous êtes automatiquement connecté dans un groupe de travail pardéfaut en tant qu'administrateur. Vous avez dans ce cas tous les droitsd'accès.

La majorité des commandes pour sécuriser unebase de donnée Access se trouvent dans le menu outils, sous la commandesécurité.

Avant d'appliquer les droits et accès, faitesune copie de votre base de donnée. Certains manipulations peuvent bloquerl'accès à votre base de donnée.

2. Définir le mot de passe de la base de donnéeAccess

Ouvrez la commande "Définir le mot de passe..." sous la rubrique sécurité. La fenêtre permet de créer un mot depasse. Lorsque vous ouvrirez la base de donnée, Access demanderaautomatiquement le mot de passe.

Cette solution n'est pas parfaite puisque le motde passe connecte l'utilisateur en tant qu'administrateur, lui donnant tous lesdroits d'accès. La méthode suivante va limiter les droits d'accès de chaqueutilisateur, en fonction du groupe.

3. MS Access Workgroup Administrator, (versions 2000 etinférieurs)

La première opération de sécurisation de votrebase de donnée est de créer un nouveau groupe de travail. Si vous n'exécutezpas cette fonction, vous pourriez ne plus avoir l'accès à vos bases dedonnées existantes. Cette fonction utilise un programme à part, repris dansle dossier d'installation de Microsoft Office: MS Access WorkgroupAdministrator.

Exécutez le programme. La fenêtre suivanteapparaît, affichant le groupe de travail par défaut: system.mdw

Cliquez sur le bouton créer pour créer unnouveau groupe de travail. C'est ici que les choses sérieuses commencent.

Nom: nom du groupe de travail

Organisation: votre entreprise par exemple

Identificateur du groupe de travail: un ensemble de 20 lettre /chiffres.

Notez soigneusement ces informations, elles sont nécessaires si vousdevez recréer ce groupe de travail (fichier défectueux, effacé, ...)

La phase suivante va permettre d'enregistrer legroupe de travail créer. Vous pouvez utiliser le groupe de travail par défaut (dangereuxpour vos bases de données Access existantes) ou, nettement conseillé,changer le nom du fichier. Vous pouvez également créer ce fichier dans un autredossier de Windows.

La dernière étape consiste à confirmer lenouveau groupe. Le groupe de travail n'est donc plus le groupe par défaut, maisun nouveau groupe.

4. Assistant Sécurité au niveau utilisateur (XP,2003).

Les versions Access XP et 2003 ont simplifié lacréation d'un groupe de travail par une commande du menu Outils:"Assistant Sécurité au niveau utilisateur"

 Cliquez sur cette commande.  Si vousn'avez pas créé précédemment de groupes de travail, seule l'option créer estaccessible.

La fenêtre est presque identique à celle du programme"Access Workgroup Administrator". Le nom du fichier est égalementremplacé.

Pour poursuivre, vous avez 2 options:

  • ... fichier de groupe de travail par défaut
  • . .. créer un raccourci pour ouvrir ma base de données sécurisée.

Par sécurité, sélectionnez la fonctionraccourci. La première option définit un groupe de travail pour votre PC. Cecipourrait rendre impossible l'accès à d'autres bases de données.

L'étape suivante va permettre de sélectionnerles objets à protéger dans la base de donnée en cours.

L'étape suivante consiste à créer des groupesd'utilisateurs optionnels. Ces comptes de groupes d'utilisateurs définissent chacundes autorisations spécifiques attribuées aux utilisateurs du groupe. Parexemple, le "groupe sauvegarde" peut ouvrir la base de donnée pour lasauvegarder ou la compacter (compression des données) mais ne peux pas voireles objets (tables, ....).

L'étape suivante consiste à donner desprivilèges au groupes utilisateurs. Par défaut, Access crée toujours le groupeAdministrateur" (accès total) et le groupe "utilisateurs"(accès restreints). Dans la majorité des cas, ne modifiez rien ci dessous. Cecipourrait permettre à tous les utilisateurs de modifier la structure de la basede donnée par exemple.

Nous allons maintenant créer les utilisateurs.Cette commande peut également être faite par la commande "Gestion desutilisateurs et des groupes". Créez au moins 1 utilisateur.

Il ne nous reste plus qu'à répartir dans desgroupes les différents utilisateurs

La dernière étape consiste à faire une copie non sécurisé dela base de donnée en cours.

Il vous faut maintenant redémarrer Access et pour rejoindre le groupe detravail. Malheureusement, au démarrage de notre base de donnée facture:

Le message "Vous n'avez pas l'autorisationrequise pour utiliser l'objet ...." est directement affiché. A ce moment,vous n'avez plus l'accès à la base de donnée. La raison est simple, ACCESSreprend encore le groupe de travail par défaut "system.mdw" et dansce fichier, vous n'avez plus d'accès à la base de donnée "Facture".Il nous faut donc maintenant rejoindre le nouveau groupe de travail. En versionXP, le nom par défaut est sécurité.mdw. Faite une recherche le cas échéant.

Démarrez Microsoft Access. Dans le menu Outils,sélectionnez la commande Sécurité, suivi de Administrateur de groupe detravail.

Comme administrateur, du groupe de travail, sélectionnezRejoindre et sélectionnez le groupe de travail précédemment. Lorsque vousouvrez la base de donnée, Access vous demande maintenant un login et un mot depasse.

4 remarques importantes.

  1. les bases de données précédemment créées au quelles vous n'avez pas créé de groupe de travail continuent à utiliser le groupe de travail par défaut et sont donc toujours accessibles.
  2. La base de donnée protégée nécessite le fichier de sécurité pour l'accéder. Ce fichier doit être sauvegarder AVEC la base de données.
  3. Le fichier de sécurité doit être copié sur chaque PC du réseau autorisé à accéder à cette base de donnée. Un partage en réseau permettrait à un autre utilisateur d'accéder à cette base de donnée à partir de tous les PC
  4. L'utilisateur Administrateur dans la base de donnée protégée doit changer de nom et utiliser un mot de passe, ceci pour éviter qu'un utilisateur ayant accès à une autre base de donnée comme administrateur ne puisse accéder à votre base protégée.

5. Créer des utilisateurs, groupesd'utilisateurs.

Rentrez comme administrateur dans la basede donnée. Nous allons maintenant ajouter des groupes d'utilisateurs et desutilisateurs à notre base de donnée sécurisée. Utilisez la commande"Gestion des utilisateurs et des groupes" et sélectionnez l'ongletGroupe. Cliquez sur le bouton créer pour créer un nouveau groupe d'utilisateurspour accéder à la fenêtre ci-contre.

Le nom est celui de l'utilisateur. Le N°personneldoit comporter entre 4 et 20 caractères.

Une fois les groupes créés, nous pouvons créerles utilisateurs par l'onglet Utilisateurs, nouveau. Par le bouton Ajouter,vous sélectionnez l'appartenance à un groupe pour chacun.

Quelques remarques, chaque utilisateur peutmodifier par cette commande son propre mot de passe. Attention, Access fait ladistinction entre les majuscules et minuscules au niveau login et mot de passe.Les utilisateurs avec une fonction d'administrateur peuvent supprimer un motde passe existant d'un utilisateur, mais pas le modifier.

Pour créer un mot de passe pour un nouvelutilisateur, il faut obligatoirement rentrer sous le nom de cet utilisateur.

Pour changer d'utilisateur, vous devezobligatoirement quitter ACCESS. En effet, Microsoft Access lit les paramètresde sécurité au démarrage du programme et non d'une base de donnée.

6. Autorisations d'accès.

La dernière étape va consister à créer lesautorisations d'accès. Cette étape peut se faire en donnant des privilèges àchaque utilisateur ou à chaque groupe. Dans ce cas, les utilisateurs faisantpartie d'un groupe récupèrent automatiquement les droits d'accès du groupe.

Les administrateurs ont toutes lesautorisations, y compris droit d'accès, effacer les fichiers, .... Unutilisateur qui crée un objet (une table ou un formulaire par exemple) estpropriétaire de ses fichiers. Il a donc le droit non seulement de les modifier,supprimer, mais également de déléguer des droits aux autres utilisateurs. Vouspouvez néanmoins changer le propriétaire par le deuxième onglet. Remarque, ceciest créé pour chaque objets. Changer le propriétaire d'une base de donnéeexistante est relativement fastidieux.

Le premier onglet permet de donner lesautorisations sur chaque objet de la base de donnée.

Les possibilités sont:

  1. Ouvrir / Exécuter: permet d'ouvrir un formulaire / état / macro.

2.      Lirela structure permet de lire la structure des tables, requêtes, ... (tailledes champs par exemple), mais pas de les modifier. Cette fonction estnécessaire pour pouvoir lire les données.

3.      Modifierla structure permet de modifier les champs, taille, ... Y compris effacerl'objet.

4.      Administrerpermet de donner des droits à d'autres utilisateurs. Le propriétaire estd'office administrateur de ses objets.

5.      Lireles données permet de lire les informations

6.      Modifierles données permet de lire et de modifier les données dans l'objet.

7.      Ajouterdes données permet d'ajouter des champs dans la base de donnée.

8.      Supprimerdes données permet de supprimer le contenu de champs et d'enregistrements.

Vous pouvez sélectionnez plusieurs objets d'uncoups. Pour les groupes et utilisateurs, songez à donner des autorisationsd'accès aux nouveaux objets. Ceci vous évitera de le faire manuellementensuite.

7. Pour terminer.

Sécuriser une base de donnée Access estrelativement longue mais nécessaire, surtout si elle est partagée en réseau.Par rapport à d'autres bases de données, ses possibilités sont néanmoinsrelativement faibles au niveau administration sécurité.

 

 

16. Champs calculés en Access

Jusque maintenant dans ce cours, les seulscalculs que nous avons effectué avec Access se faisaient dans les Etats, et encore avec seulement4 fonctions: somme, minimum, maximum, moyenne. Dans une base de donnée, lescalculs se font dans les Etats, mais uniquement sur la valeur d'un champ pourun ensemble d'enregistrements. Dans de nombreux cas, nous devons calculerdirectement sur une ligne (sur un enregistrement).

Prenons un exemple: une facturation reprend la quantité, le taux deTVA et le prix unitaire d'une marchandise. Il nous reste à calculer le prixhTVA, TVAc, ... De même, dans une gestion de stock, nous pouvons être amené àcalculer le stock réel comme la différence entre les entrées et les sorties.Pour Excel, la solution passe par des calculs directs (coursexcel: fonction), la solution en Access passe par un champ calculé.

Les champs calculés sont valables pour lesrequêtes, formulaires et états mais vous ne pouvez pas utiliser cettefonctionnalité pour une table.

Comme exercice, nous allons monter une petitefacturation sous Access. Commençons par créer une nouvelle base de donnée vide.Dans cette base de donnée Access, créons une simple table reprenant les champssuivants:

Appelons cette table "contenufacture". En effet, la base de donnée sera éventuellement complétée par lasuite par des tables supplémentaires comme l'en-tête de facture, les produits,clients, ...

2. Champ calculé dans une requête

Passons maintenant en mode requête et utilisonsle mode assistant. Sélectionnons la table:contenu facture

Enregistrons notre requête sous le nom TVAc.

Dans la colonne suivante, nous souhaitons calculer sous Access le prix hTVAà payer. Dans champ, tapons hTVA:[Quantite]*[Prix]. Access ne tient pascomptes des majuscules - minuscules.

  • hTVA est le nom du champ créé
  • : signale le calcul
  • [texte]: représente le nom du champ de la table / requête.

De même, dans la colonne suivante, faisons lecalcul montant TVAc, la fonction devient: tvac: [htva]*(1+[TVA]/100).Notez que le calcul tient compte d'un taux de TVA en chiffre normal (pas enpourcentage) puisqu'il est divisé par 100. Le champ calculé précédemment (horsTVA) est bien repris comme un champ de la requête.

Pour créer un champs calculé dans une requête: dans la case champ,

tapez: Nom du nouveau champ:calcul où calcul est valeur * [nom de champ inclus dans la requête]

Passons en mode affichage par le bouton en haut à gauche (barre d'outils création) etrentrons les données suivantes:

Access calcule automatiquement le montant hTVA et le montant TVAc.

3. Champ Access calculé dans un formulaire.

Créer un calcul Access dans un formulaire n'estguère plus difficile. A l'aide de l'assistant, créons un formulaire Accessreprenant tous les champs de la table "Contenu facture" en modetabulaire.

Une fois le formulaire créé, utilisez la barre d'outils pour créer une zonede texte. Une zone de texte permet en fait d'insérer un champ. Lazone créée reprend une étiquette (reprise dans l'exemple ci-dessus commeTexte8) et une zone de champ reprise dans l'exemple ci-dessus commeindépendant.

Dans la zone de texte, tapons =[Prix]*[quantite].Si nous affichons les propriétés de ce champ, la source de contrôle est remplacépar notre texte. Nous pouvons également changer le nom de notre zone de textepar hTVA. L'étiquette associée n'est pas modifiée, elle ne représente qu'untexte descriptif qui peut dans notre cas être effacé. Vous pouvez passer enmode formulaire pour vérifier que le montant hors TVA est bien mis à jour enfonction du prix et de la quantité dans notre formulaire contenu facture.

Pour le prix TVA comprise, nous allons utiliserl'autre méthode qui consiste à utiliser les fonctionnalités de la fenêtrepropriétés. Même si cette possibilité n'a pas encore été abordée dans ce coursen ligne (mais fait déjà partie de la matière vue dans notre formation Access enentreprise ou dans nos salles de formation) Créez une nouvelle zone detexte, sélectionnez-là avec la touche droite de la souris pour afficher lafenêtre de propriétés. Dans la case "Source Contrôle", sélectionnezla zone à l'extérieur droit: . Ceci nous permet d'afficher le générateurd'expression.

En cliquant sur les petits +, ouvrez Formulaires-> Formulaires chargés. Sélectionnez Quantite (Valeur) et double cliquezdessus (Utilisez le bouton Coller fonctionne également). Taper dans la fenêtreau-dessus * et sélectionnez les champs, tapez les valeurs souhaitées pourobtenir: tvac: [htva]*(1+[TVA]/100)

En mode visualisation, votre formulaire Accessdoit afficher ceci:

4. Champs Access un état.

Pour avoir déjà travaillé sur les états Access,nous avons déjà fait des options de synthèses. Cette fonction permet de faireune somme, maximum, minimum et moyenne sur des valeurs d'un même champ pour desenregistrements spécifiés. Nous allons utiliser la même technique que pour lesformulaires. Commençons par créer un état à l'aide de l'assistant en utilisantde nouveau la table "Contenu Facture", sans regroupements.

Utilisez le même principe qu'avec le formulairepour créer les champs calculés hTVA et TVAc

Les fonctions de calcul hors TVA et TVA comprisesont identiques à celles des formulaires:

Nous allons utiliser ces 3 méthodes de champscalculés dans l'exercice Access de fin de formation.

 

 

 

 

 

 

 

 

 

Par : zzunogob
Inscription d'une personne : Il y a 4 an(s)
Billets : 49
URL
 
Note :
Visite(s) : 2632 évaluation(s)
 
Commentaires
largowinch76 (3 an(s))  
Cours  très  intéressant  et  complet
 
       
CONTACT | CGV | INFORMATION LÉGALE
COPYRIGHT © 2010 carrefourinternet.com