|
|||||||||||||||||||||||||||||
|
La bonne méthode consiste en fait à scinder votre application Access en deux fichiers .mdb :
Astuce
En fait, la base frontale peut également contenir des tables, ce qui permet éventuellement d'y stocker des informations spécifiques à chaque utilisateur (puisque ces tables ne sont pas partagées en réseau).
|
De cette manière, vous annulez les inconvénients vus plus haut :
Les performances : lorsqu'un utilisateur se connecte à la base, il ne rapatrie plus sur sa machine que les données. Les autres éléments (l'interface notamment) sont chargés directement depuis sa propre machine.
La mise à jour : si vous ouvrez un objet en mode Création, vous verrouillez uniquement la base frontale (la majorité des mises à jour se faisant côté applicatif, et moins souvent du côté tables). Vous pouvez donc améliorer votre base de données pendant que vos collègues continuent de travailler sur leur base frontale. Lorsque vos modifications sont terminées, vous recopiez votre base frontale sur les machines des autres utilisateurs (en écrasant leur ancienne frontale), ce qui suffit pour la mise à jour.
Scinder une base Access en deux : la pratique
Ouvrez votre base Access complète (un seul fichier .mdb terminé).
Cliquez sur le menu .
Vous obtenez un premier écran d'introduction : cliquez
sur le bouton .
Une nouvelle boîte de dialogue apparaît, qui vous invite
à créer la base de données principale. Il s'agit dans la terminologie
Microsoft de la partie données de la base (les tables). Donnez à cette
base un nom (par exemple : back-end.mdb, données.mdb ou dorsale.mdb),
et profitez-en pour définir son emplacement sur le réseau (le dossier
partagé prévu sur le serveur).
Cliquez sur le bouton pour lancer l'opération. C'est tout !
Que s'est-il passé ?
Une nouvelle base de données a été créée dans le dossier
partagé du serveur, sous le nom chap02_données.mdb dans l'exemple
ci-dessous.. A part le dossier partagé, le serveur ne nécessite aucune
intervention (pas de pilotes spécifiques, pas de logiciel à installer, pas de
service Windows ; Access peut d'ailleurs ne pas être installé sur le serveur,
il n'y servirait à rien).
Les requêtes, formulaires, états, macros et modules de la base originale n'ont pas été modifiés, ils continuent de fonctionner comme avant.
La base originale (sur la machine utilisateur) ne contient
plus de tables réelles, mais des raccourcis vers les tables du serveur (ces
raccourcis sont représentés par une icône de table assortie d'une petite
flèche). Access 2002 et 2003 affichent le chemin vers la table originale
lorsque vous survolez un de ces raccourcis à la souris.
Ça marche comment ?
Dans la pratique, la scission de la base ne change rien à votre façon de travailler :
Lorsque vous double-cliquez sur l'un des raccourcis, vous ouvrez la table située sur le serveur, de façon transparente. Vous pouvez y ajouter des données, modifier des enregistrements, supprimer des enregistrements (c'est bien sûr la base dorsale qui est affectée).
Si vous modifiez des données en direct dans la base dorsale, les changements sont répercutés en temps réel dans la base frontale. En pratique, vous devriez peu attaquer la dorsale en direct.
Dans la partie frontale, la création de nouvelles requêtes, de nouveaux formulaires, etc. ne change pas : vous basez ces objets sur les raccourcis des tables... qui de toute façon se comportent comme les tables d'origine.
Vous pouvez recopier la base frontale sur les machines des autres utilisateurs. On suppose qu'ils disposent d'Access ou d'un runtime Access Access. On suppose aussi pour l'instant qu'ils ont la même configuration réseau que vous (ils "voient" le dossier partagé de la même manière que vous, avec un chemin identique ; si ce n'est pas le cas... lisez ce qui suit !).
Gestion des liaisonsEn soi, la base dorsale est indépendante, elle n'est liée à aucune autre base de données.
Par contre, la base frontale dépend de la base dorsale. Cette dépendance est déterminée par le chemin réseau associé à chaque table (\\Trex\partage\dans l'exemple ci-dessus). Vous aurez quelques retouches à prévoir si :
Vous renommez la base dorsale,
Vous renommez le partage réseau,
Vous déplacez la base dorsale,
D'autres utilisateurs ne voient pas le dossier partagé sous le même nom que vous,
Vous installez l'application chez un client qui ne dispose pas de la même configuration que vous (notamment un nom de serveur et/ou un nom de partage différent).
Dans ce genre de situation, il faut forcer Access à réactualiser les raccourcis de la base frontale pour qu'ils pointent vers le nouvel emplacement de la base dorsale. C'est parti :
Ouvrez la base frontale.
Cliquez sur le menu .
Dans la boîte , cliquez sur le bouton (vous pouvez également ne sélectionner que quelques tables, mais c'est généralement exceptionnel).
Cochez la case Toujours demander un nouvel emplacement.
Cliquez sur le bouton . Vous devrez alors sélectionner la base dorsale quelque part sur le réseau, puis valider en cliquant sur le bouton .
En principe, au bout de quelques secondes, le rétablissement des liaisons est terminé.
Note
En mode runtime, le Gestionnaire de tables liées n'est pas disponible. Ceci signifie que vous devez prévoir une autre manière de rétablir les liaisons. Généralement, un petit programme VBA manipulant les objetsTableDeffait l'affaire, mais ce n'est pas l'objet de cet article (vous trouverez des détails dans les livres , ou ).
Que se passe-t-il si...
J'ajoute une table dans la base dorsale ? Cette table n'est bien sûr pas liée automatiquement à la base frontale. Comment Access pourrait-il deviner ? :o)
Pour créer un raccourci de table supplémentaire dans la base frontale :
Ouvrez la base frontale.
Cliquez sur le menu (un clic droit dans la fenêtre fait également l'affaire).
Sélectionnez la base dorsale quelque part sur le réseau, puis sélectionnez la/les table(s) de cette base qu'il faut relier à la base frontale.
Je supprime un raccourci dans la base frontale ? La suppression d'un raccourci n'affecte pas la base dorsale. C'est donc sans risque.
Je supprime une table dans la base dorsale ? La base frontale n'est pas affectée directement. Plus exactement : le raccourci y figure toujours (il n'est pas supprimé automatiquement), mais il ne fonctionne plus, bien sûr. Un double-clic sur le raccourci vous gratifiera d'une belle Injure Box :o)
<< 7. Exécuter une action à une heure précise [ Sommaire ]
Cette section vous intéresse ? Abonnez-vous ! ![]()
|
Notions de base Jargon Access :o) Syntaxe SQL Programmation ASP Scripting Runtime Le Grenier [FAQ Access] Les tutoriaux Self-Access Les Assistants Access Les livres sur Access ! |
|
Forums Access Abonnement gratuit Télécharger... |
|
Le saviez-vous ? Une base contient au maximum 32768 objets. De quoi voir venir ! A demain pour une nouvelle astuce ! |