Cours Access en réseau avec exercices
...
La base de donnée Access est directement utilisable en réseau local. Il n'y a donc à priori pas de réglage à faire pour partager une base de donnée Access, si ce n'est partager le dossier sur le serveur réseau pour donner l'accès à chacun, mais c'est assez théorique. Le partage réseau d'ACCESS n'est pas le point fort de cette base de donnée, surtout si vous essayez avec un nombre important d'utilisateurs connectés simultanément.
Avant de d'étudier les possibilités réseaux d'Access, un petit rappel sur les réseaux informatiques. Pour installer un petit réseau, il faut comme matériel: une carte réseau implantée dans chaque ordinateur, une connexion entre ces PC. Si le nombre d'ordinateurs à connecter est limité à 2, vous pouvez utiliser directement un câble RJ45 croisé. Par contre, si vous connectez plus de 2 PC, il vous faut un switch (un hub éventuellement) et des câbles RJ45 droits que vous reliez de ce switch vers chaque PC. Ces câbles peuvent être achetés tout fait, soit fabriqués. Ces connexions sont expliquées dans connexion réseau RJ45.
Maintenant que vous avez câblé votre réseau, il vous faut paramétrer les différents ordinateurs. On trouve 2 types de réseaux locaux: les "postes à postes" (peer to peer) et les réseaux "clients-serveurs". Dans le premier cas, ceci ne nécessite pas d'ordinateurs particuliers. Chaque ordinateur d'un réseau poste à poste est équivalent et partage ses dossiers et imprimantes. Cette facilité de partage se fait néanmoins au détriment de la sécurité. Microsoft limite de toute façon le nombre d'ordinateurs connectés à 10 en Win 2000 et Win XP Pro. Cette fonction n'est plus réellement implantée en Win XP home. Les réseaux "client-serveur" nécessitent un ordinateur particulier qui va partager ses informations. Le système d'exploitation de ce serveur est Win 2000 (version serveur) ou Windows 2003. Le système d'exploitation va garantir de meilleurs contrôles au niveau des accès utilisateurs.
Dans le premier cas, le partage se fait entre des ordinateurs du mê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 accessible aux utilisateurs concernés.
Le cours hardware 2 reprend des renseignements complémentaires concernant les installations réseaux.
Le partage réseau en ACCESS va donc permettre de travailler 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èmes de conflits. Par contre, il se pourrait très bien que 2 utilisateurs modifient le même enregistrement en même temps. Dans ce cas, Access va Bloquer l'enregistrement tant que le premier utilisateur sera en mode modification.
Remarque, si vous n'avez pas de réseau installé, vous pouvez démarrer 2 fois la même base de donnée. C'est la méthode que nous allons utiliser dans ce cours.
2.1 Modification d'un enregistrement.
Dans l'exemple ci-dessus, Nous avons modifié le champ titre d'un enregistrement par une instance de la base de donnée. Par contre, l'autre affichage n'est pas modifié. Par contre, si l'utilisateur avance à l'enregistrement suivant et revient à cet enregistrement, les nouvelles données sont effectivement affichées.
2.2. Modification simultanée du même enregistrement.
Ouvrez le même formulaire simultanément dans notre base de donnée facture et modifiez le même enregistrement par les 2 fenêtres. Automatiquement le message suivant va apparaître lorsque le deuxième utilisateur va quitter l'enregistrement:
Si vous sauvegardez l'enregistrement, les modifications effectuées par le précédant utilisateur sont écrasés pour tout l'enregistrement (même si vous ne modifiez pas les mêmes champs). Cette méthode de travail est donc dangereuse.
Les problèmes rencontrés ci-dessus viennent du verrouillage par défaut. Dans le menu outils, sélectionnez la commande Option, et finalement l'onglet Avancé. Cette partie va nous permettre de modifier la maniè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 de plusieurs utilisateurs du réseau en même temps sur la base de donnée. Par contre, le mode exclusif ne permet qu'un seul utilisateur à la fois. Ce mode est utilisé pour la maintenance d'une base de donnée Access par exemple.
Pour rappel, la commande ouvrir permet également de se connecter sur une base de donnée Access en mode exclusif.
3.2. Verrouillage par défaut.
Aucun ne bloque pas les modifications simultanées. C'est le mode par défaut, c'est la raison des messages d'avertissement plus haut.
Général n'est pas souvent utilisé puisque si un utilisateur modifie un enregistrement, ACCESS bloque complètement la table.
Enregistrement modifié ne bloque l'accès en modification qu'à l'enregistrement en cours de modification.
Après avoir quitté Access et redémarré les 2 bases de données, la modification du même enregistrement par 2 utilisateurs en même temps fournit ce message. Tant que le premier utilisateur n'aura pas finit la modification, l'utilisateur 2 n'aura pas l'accès à l'enregistrement
… … … …
TP :
1- Sujet
Ce TP vise à mettre en place une base de données pour la gestion des emprunts de livres d’une bibliothèque par des étudiants.
2- Structure de la base de données
Les tables auxquelles vous devez parvenir correspondent aux relations de la figure ci-dessous.
3- Découverte du logiciel
Dans votre répertoire personnel, commencez par créer un répertoire TP. Lancer MS Access 2003. Dans le menu “Fichier”, cliquez sur “Nouvelle base”.
Nom de fichier “TP1.mdb” et chemin de sauvegarde, le répertoire créé à l’´etape précédente.
Conseil: Ne soyez pas trop rapide en créant les tables afin d’éviter les erreurs de formats de données.
3.1- Création de la table Livre
Cliquez sur l’onglet “Tables”. Puis “Créer une table en mode Création”. Insérez la liste des attributs de la table “Livre”, un par ligne. Pour chacun d’eux, vous devez préciser son nom, son type de données et un commentaire. Pour préciser le type de données, il suffit de cliquer sur la colonne correspondante, un menu déroulant apparaîtra. Le choix pour “NoLivre” devra être “NuméroAuto”. Cela signifie qu’un numéro, distinct de tous les précédents et donc unique, sera automatiquement choisi `a chaque insertion d’un nouveau livre. Pour préciser que “NoLivre” est la clé de cette table, sélectionnez sa ligne et cliquez sur la petite clé jaune apparaissant dans la barre d’outils.
Rappelons que, de façon générale, une clé peut impliquer plusieurs champs. Dans ce cas, on sélectionne les champs concernés en gardant la touche [Ctrl] appuyée. Puis on clique sur la clé jaune.
3.2- Création de la table Utilisateur
Procédez comme précédemment.
3.3- Création de la table Emprunt
Idem à ceci près que les champs “NoUtilisateur” et “NoLivre” ne devront pas être des numéros automatiques mais de simples entiers longs.
3.4- Création des liens entre les tables
Nous allons créer les liens entre les tables. Lancez le menu “Outils/relations”. Agrandissez si nécessaire les fenêtres des tables. Tirer les clés primaires vers les clés importées (attention au sens).
3.5- Création des formulaires de saisie des données
Chacune des tables doit être associée à un formulaire de saisie. Le rôle de la table est de stocker des informations et le rôle du formulaire est de présenter une interface graphique, la plus ergonomique possible, entre l’utilisateur et la table.
Cliquez sur l’onglet “Formulaires”. A l’aide de l’assistant, créez les formulaires Livre et Utilisateur.
N’insérez pas les “NoLivre” et “NoUtilisateur” car ce sont des numéros internes et l’utilisateur n’a pas besoin de les voir. A l’étape “Quelle disposition souhaitez-vous pour votre formulaire ?”, préférez “Colonne simple”. L’autre possibilité classique est “Tabulaire”. Faites un essai supplémentaire avec “Tabulaire” pour voir la différence entre les deux. Cette différence se voit essentiellement lorsqu’il y a plusieurs lignes dans la table correspondante.
Pour comprendre le travail qu’a fait l’assistant, nous allons, `a pr´esent, cr´eer le dernier formulaire “Emprunt” manuellement.
Mode création. Affichage entête et pied de formulaire. Dans l’entête et à l’aide de la boite à outil, cliquez sur l’icone “Aa”, et placez un titre “Emprunt”. Attention, ne confondez pas l’icône “Aa” et l’icône “ab|”. La première permet d’insérer une simple étiquette, sans lien avec la table sous-jacente.
La seconde est une “zone de texte” et permet de visualiser une information calculée ou, de façon plus générale, un champ de la table sous-jacente (on peut alors modifier la donnée de ce champ). Liez ce formulaire à la table Emprunt en cliquant droit en haut et à gauche du formulaire (petit carré noir dans un carré blanc) pour afficher les propriétés du formulaire. Dans l’onglet “Données”, modifiez le champ “Source”. Il ne sera pas nécessaire de visualiser le “NoEmprunt”.
Pour visualiser, ou modifier, le champ “DateEmprunt”, ajoutez une zone de texte (icône “ab|”) dans la section “Détail” du formulaire. Dans les propriétés de cette zone, onglet “Données”, faites en sorte que la “Source contrôle” vaille “DateEmprunt”. Adaptez en conséquence l’étiquette de cette zone de texte. Il existe une façon plus rapide pour ajouter des zones de texte. La voici pour “DateRetour”. Sélectionnez dans le menu : “Affichage/Liste des champs”. Les champs de la table “Emprunt” apparaissent. Il suffit alors de faire glisser dans le formulaire ceux qui vous intéressent. Faites le pour le champ “DateRetour”.
En plus des dates d’emprunt et de retour, un emprunt doit préciser l’utilisateur effectuant l’emprunt ainsi que le livre emprunté. Des zones de textes classique (icône “ab|”) pourraient être utilisées. Mais dans ce cas, pour entrer un numéro d’utilisateur, il faudrait les connaître tous ! ou visualiser en même temps la table ou le formulaire “Utilisateur”. Une autre solution est d’utiliser des listes déroulantes comme indiqué ci-dessous.
Le principe est le suivant pour celle correspondant au choix de l’utilisateur. On précise que le contenu de la liste vient de la table “Utilisateur”. On choisit l’utilisateur en fonction de son nom. Et c’est le numéro d’utilisateur correspondant au nom choisi qui est alors inséré dans la table “Emprunt”.
Utilisez l’icône suivante :
et cliquez où vous voulez que la liste apparaisse. Un assistant se lance, il suffit de répondre aux questions qu’il pose. Attention, vous devez sélectionner au moins les champs “NoUtilisateur” et “Nom” et à l’avant dernière étape, vous devrez sélectionner l’option “Stocker la valeur dans ce champ :” en précisant le champ “NoUtilisateur”. Faites de même pour la liste des livres.
Une méthode plus rapide pour réaliser les premières étapes de construction de ce formulaire aurait été de le commencer avec l’assistant, toujours à partir de la table “ Emprunt ” ; puis d’ajouter, dans un second temps, les deux listes déroulantes.
3.6- Insertion de données
Insérez des données dans les diverses tables en utilisant les formulaires. Essayez de faire de même en insérant les données directement dans les tables.
3.7- Création d’un formulaire de menu
Nous disposons à présent de trois formulaires permettant de saisir les données utiles dans nos tables.
Créez maintenant un formulaire avec des boutons. Le but est que lorsqu’on appuiera sur le bouton Correspondant à a un formulaire, le formulaire en question s’ouvrira. Essayer de trouver comment faire.
Partez d’un formulaire créé en mode création (sans utilisation de l’assistant). Utilisez alors l’assistant pour créer les boutons correspondants.
3.8- Plus
A tous vos formulaires, rajoutez un bouton permettant de le fermer. Rajoutez aussi au menu, un bouton permettant de fermer la base elle même, donc Access dans notre cas.
4 Requêtes
Pour créer une requête, procédez de la façon suivante :
Etablit les liens entre les tables. Pour ce faire, il utilise les liens définis dans la fenêtre de l’outil “Relations”. S’il faut rajouter un (ou plusieurs) lien, vous pouvez le faire en faisant glisser la clé d’une table vers une autre table.
préciser une contrainte par un nom de variable entre crochets (par ex.: “[Nom de l’utilisateur]” dans la colonne “Nom” de la table “Utilisateur”). Dans ce cas, “Access” demande la valeur de cette variable lors de l’exécution de la requête. Vous pouvez éviter l’affichage d’une colonne sur laquelle vous posez une contrainte en décochant la case correspondante de la ligne “Afficher :”.
Réalisez les requêtes suivantes :
5- Sous formulaire
Supposons maintenant que nous voulions parcourir l’ensemble des utilisateurs et que pour chacun d’eux, nous ayons la liste de ses emprunts. Pour cela, il faut utiliser deux formulaires imbriqués. Le premier, le “père” ou formulaire principal, parcoura l’ensemble des utilisateurs, tandis que le second, le “fils” ou sous-formulaire, imbriqué dans le premier, donnera la liste des emprunts de l’utilisateur courant. Vous avez un exemple du résultat à l’illustration ci-dessous.
Pour réaliser cela, commencez par créer le formulaire principal à l’aide de l’assistan
Basez le sur la table “Utilisateur” et insérez les champs Nom, Prenom, Adresse et Promo.
Nommez-le EmpruntsParUtilisateur.