Selon la configuration de votre ordinateur et votre environnement de travail, il existe diffrentes
manires d'amliorer la performance de Microsoft Access ou de votre base de donnes Microsoft Access (base de donnes : collection de donnes relatives un sujet ou un objectif particulier. Dans une base de donnes, les informations sur une entit particulire, par exemple, un employ ou une commande, sont classs en tables, enregistrements et champs.). Si vous optimisez la performance d'une base de donnes Access, commencez par utiliser l'Analyseur de performance. Il peut vous permettre d'analyser l'ensemble d'une base de donnes, ou une slection d'objets dans une base de donnes. L'Analyseur de performance peut galement vous proposer des solutions de rechange si vous le voulez. Excuter l'Analyseur de performance Vous pouvez utiliser l'Analyseur de performances pour optimiser les performances d'une base de donnes Microsoft Access (base de donnes : collection de donnes relatives un sujet ou un objectif particulier. Dans une base de donnes, les informations sur une entit particulire, par exemple, un employ ou une commande, sont classs en tables, enregistrements et champs.). Il n'est pas disponible dans un projet Access (projet Microsoft Access : fichier Access qui tablit une connexion une base de donnes Microsoft SQL Server et qui sert crer des applications client- serveur. Un fichier de projet ne contient aucune donne ni aucun objet bas sur la dfinition de donnes telles que des tables et des vues.). Ouvrez la base de donnes Access optimiser. Dans le menu Outils, pointez sur Analyse, puis cliquez sur Performance. Cliquez sur l'onglet correspondant au type de l'objet de base de donnes (objets de base de donnes : une base de donnes Access contient des objets tels que des tables, des requtes, des formulaires, des tats, des pages, des macros et des modules. Un projet Access contient des objets tels que des formulaires, des tats, des pages, des macros et des modules.) optimiser. Cliquez sur l'onglet Tous types d'objets pour visualiser la liste de tous les objets de base de donnes la fois. Slectionnez les noms des objets de base de donnes que vous voulez optimiser. Cliquez sur Slectionner tout pour slectionner tous les objets de la liste. Rptez les tapes 3 et 4 jusqu' ce que vous ayez slectionn tous les objets souhaits, puis cliquez sur OK. L'Analyseur de performance indique trois sortes de rsultats d'analyse : Recommandation, Suggestion, et Ide. Lorsque vous cliquez sur un lment de la liste des Rsultats de l'analyse, des informations sur le mode d'optimisation propos s'affichent dans la zone Remarques d'analyse situe sous la liste. Il faut bien garder l'esprit que toute optimisation lie une suggestion aura des effets secondaires indsirables prendre en compte. Pour visualiser une description des effets secondaires, cliquez sur une Suggestion de la liste et lisez les informations contenues dans la zone Remarques d'analyse. Access peut procder lui-mme aux optimisations bases sur les Recommandations et les Suggestions. Pour ce qui est des Ides, c'est vous de les mettre en pratique. Cliquez sur l'une ou plusieurs des optimisations de Recommandation ou Suggestion excuter, puis cliquez sur Optimiser. L'Analyseur de performance va procder aux optimisations puis les marquer comme Fixes. Poursuivez l'opration jusqu' ce que l'Analyseur de performance ait suivi toutes les Recommandations et Suggestions que vous lui avez indiques. Pour effectuer toutes les optimisations de Recommandation et Suggestion, cliquez sur Slectionner tout, puis sur Optimiser. Pour effectuer une optimisation de type Ide cliquez sur cette dernire, puis suivez les instructions contenues dans la zone intitule Remarques d'analyse. Remarque l'Analyseur de performance ne fait aucune suggestion sur la manire d'amliorer les performances de Microsoft Access lui-mme ou celles du systme sur lequel il s'excute. Amliorer la performance de Microsoft Access et de votre systme Les directives ci-dessous peuvent vous aider optimiser les performances de Microsoft Access sur votre ordinateur : Si vous n'avez pas besoin de partager les bases de donnes que vous utilisez, installez Microsoft Access et toutes vos bases de donnes sur votre disque dur et non pas sur un serveur de rseau. Si vous tes seul utiliser une base de donnes, ouvrez-la pour une utilisation exclusive. Dans la bote de dialogue Ouvrir, cliquez sur la flche situe ct du bouton Ouvrir, puis cliquez sur Ouvrir en exclusif. Librez de la mmoire en fermant les applications dont vous ne vous servez pas. Augmentez la mmoire vive (RAM) de votre ordinateur. 40 Mo de mmoire sont recommands ; 32 Mo de mmoire et 8 Mo supplmentaires sont recommands pour Microsoft Access. N'utilisez pas votre RAM avec un disque de RAM. Supprimez rgulirement les fichiers inutiles et videz votre Corbeille, compactez vos bases de donnes, puis dfragmentez votre disque dur avec le Dfragmenteur de disque de Microsoft Windows. Pour dmarrer le Dfragmenteur de disque, cliquez sur le bouton Dmarrer de Windows, pointez sur Programmes, puis sur Accessoires, puis sur Outils systme, puis cliquez sur Dfragmenteur de disque. Dans la plupart des cas, le paramtrage de la mmoire virtuelle par dfaut utilise par Windows doit offrir les meilleurs rsultats. Cependant, vous serez peut-tre parfois amen modifier ce paramtrage pour amliorer les performances. Si vous avez dj essay de supprimer les fichiers inutiles et que malgr cela vos problmes de performances persistent, tentez de modifier le paramtrage de la mmoire virtuelle par dfaut dans les cas suivants : Vous ne disposez pas de beaucoup de place disque disponible sur l'unit en cours d'utilisation par la mmoire virtuelle et une autre unit locale comportant de la place est disponible. Une autre unit locale, plus rapide que l'unit courante, est disponible ( moins qu'elle ne dispose plus de beaucoup de place). Dans ces cas, vous obtiendrez peut-tre de meilleures performances en spcifiant une autre unit pour la mmoire virtuelle. Vous obtiendriez galement de meilleures performances en spcifiant que la place disque disponible pour la mmoire virtuelle doit tre d'au moins 25 Mo moins la RAM disponible. Par exemple, si votre ordinateur a 12 Mo de RAM, vous devez spcifier au moins 13 Mo de mmoire virtuelle. Vous voudrez peut-tre spcifier plus de mmoire virtuelle, notamment si vous excutez plusieurs applications de taille importante. Pour modifier les paramtres de la mmoire virtuelle de Windows, dans le Panneau de Configuration de Windows, double-cliquez sur l'icne Systme, cliquez sur Options de performances sous l'onglet Avanc, puis sur le bouton Modifier dans la section Mmoire virtuelle, et spcifiez un autre disque dur, ou entrez une valeur dans la zone Taille initiale gale au moins 25 moins la RAM disponible. Si vous avez un fichier bitmap de papier peint (arrire-plan plein cran) sur votre bureau Windows, remplacez-le par une bitmap unie ou par un motif, ou par rien du tout. Si vous utilisez un conomiseur d'cran, utilisez-en un vierge ou n'en utilisez pas du tout. liminez le logiciel de compression de disque ou dplacez vos bases de donnes vers une unit non compresse. Pour garantir des performances optimales, utilisez les polices de remplacement uniquement si vous avez besoin de prendre en charge une deuxime police pour afficher l'ensemble de vos donnes. Amliorer la performance des tables Utilisez l'Analyseur de performance pour analyser des tables spcifiques dans votre base de donnes. Crez des tables sans donnes redondantes. La bonne conception de votre base de donnes est une condition pralable pour obtenir des extractions et des mises jour de donnes rapides. Si des tables existantes contiennent des donnes redondantes, vous pouvez utiliser l'Assistant Analyseur de table pour diviser vos tables en tables connexes permettant de stocker vos donnes de manire plus efficace. Choisissez un type de donnes (type de donnes : caractristique dun champ qui dtermine le type des donnes quil peut contenir. Les diffrents types de donnes sont Boolean, Integer, Long, Currency, Single, Double, Date, String et Variant (par dfaut).) appropri pour les champs. Ceci vous permet d'conomiser de l'espace dans votre base de donnes et d'amliorer les oprations de jointure (jointure : association entre un champ dune table ou dune requte et un champ du mme type de donnes dans une autre table ou requte. Les jointures indiquent au programme la faon dont les donnes sont lies. Les enregistrements qui ne correspondent pas peuvent, selon le type de jointure dfini, tre inclus ou exclus.). Lorsque vous dfinissez un champ, choisissez le plus petit type de donnes ou la taille de champ approprie pour les donnes du champ. Crez des index (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) pour les champs que vous triez, joignez ou pour lesquels vous dfinissez des critres. Vous pouvez considrablement accrotre la vitesse des requtes en indexant les champs des deux cts des jointures, ou en crant une relation (relation : association tablie entre des champs communs (colonnes) de deux tables. Une relation peut tre de type un un, un plusieurs ou plusieurs plusieurs.) entre ces champs et en indexant les champs utiliss pour dfinir les critres de la requte. La recherche d'enregistrements l'aide de la bote de dialogue Rechercher est galement plus rapide lorsque le champ est index. Toutefois, les index ne sont pas indiqus dans tous les cas. Ils augmentent la taille du fichier .mdb, rduisent le niveau d'accs concurrents ( savoir, la possibilit pour plusieurs utilisateurs de modifier une page au mme moment) dans des applications multi-utilisateur. Par ailleurs, ils diminuent les performances lorsque vous mettez jour les donnes dans des champs qui sont indexs ou lorsque vous ajoutez ou supprimez des enregistrements. Il peut tre intressant de tester les champs pour dterminer ceux qui doivent tre indexs. L'ajout d'un index peut acclrer l'excution d'une requte d'une seconde, mais peut galement ralentir l'ajout d'une ligne de donnes de deux secondes et entraner des problmes de verrouillage. Parfois, des gains de vitesse sont observs, mais ils sont drisoires et ils dpendent des autres champs qui sont indexs. Si, par exemple, vous ajoutez un index dans un champ Code postal, vous obtenez un gain de performance trs minime si un champ Socit et Nom dans la table sont dj indexs. Quel que soit le type de requtes que vous crez, n'indexez que les champs qui comportent des valeurs pratiquement uniques. Dans un index multichamp, utiliser seulement les champs qui sont ncessaires Amliorer la performance des tables lies Remarque Vous ne pouvez lier (liaison (de tables) : action qui tablit une connexion des donnes issues dune autre application pour vous permettre de visualiser et de modifier les donnes dans lapplication dorigine et dans Access.) une table que dans une base de donnes Microsoft Access (base de donnes Microsoft Access : collection de donnes et dobjets (tels que des tables, des requtes ou des formulaires) qui est associe une rubrique ou un objectif donn.), pas dans un projet Microsoft Access (projet Microsoft Access : fichier Access qui tablit une connexion une base de donnes Microsoft SQL Server et qui sert crer des applications client-serveur. Un fichier de projet ne contient aucune donne ni aucun objet bas sur la dfinition de donnes telles que des tables et des vues.). Bien que vous puissiez utiliser les tables lies comme s'il s'agissait de tables Microsoft Access normales, il est important de garder l'esprit qu'elles ne se trouvent pas dans votre base de donnes Microsoft Access. Chaque fois que vous visualisez des donnes dans une table lie, Microsoft Access doit extraire les enregistrements dans un autre fichier. Cette opration peut tre longue, surtout si la table lie se trouve sur un rseau ou dans une base de donnes SQL. (base de donnes SQL : base de donnes base sur le langage SQL (Structured Query Language).) Si vous utilisez une table lie sur un rseau ou dans une base de donnes SQL, suivez ces recommandations pour obtenir des rsultats optimaux. Vous pouvez considrablement amliorer les performances d'ouverture de la base de donnes principale, et des tables et formulaires, en forant la base de donnes attache rester ouverte. Pour ce faire, crez une table vide dans la base de donnes attache et attachez-la la base de donnes principale. Utilisez ensuite la mthode OpenRecordset pour ouvrir la table lie. Cette procdure vite au moteur de base de donnes Microsoft Jet d'ouvrir et de fermer plusieurs reprises la base de donnes attache et de crer et supprimer le fichier (.LDB) associ. Ne visualisez que les donnes ncessaires. Ne montez pas ou ne descendez pas inutilement dans la feuille de donnes. vitez de passer au dernier enregistrement dans une table volumineuse. Si vous souhaitez ajouter de nouveaux enregistrements, utilisez la commande Entre de donnes dans le menu Enregistrements pour viter de charger en mmoire des enregistrements existants. Utilisez des filtres ou des requtes pour restreindre le nombre d'enregistrements que vous visualisez dans un formulaire ou une feuille de donnes. De cette manire, Microsoft Access effectue moins de transferts de donnes sur le rseau. Dans les requtes qui utilisent des tables lies, vitez l'emploi de fonctions dans les critres d'une requte. vitez en particulier l'utilisation de fonctions de regroupement Domaine (fonction de domaine : fonction, telle que DAvg ou DMax, utilise lors du calcul de statistiques sur un ensemble denregistrements (domaine).), telles que DSum, o que ce soit dans vos requtes. Lorsque vous utilisez une fonction de regroupement Domaine, Microsoft Access extrait toutes les donnes de la table lie pour excuter la requte. Si vous ajoutez souvent des enregistrements dans une table lie, crez un formulaire cet usage et renseignez sa proprit EntreDonnes (DataEntry) par Oui. Lorsque vous ouvrez le formulaire pour saisir de nouvelles donnes, Microsoft Access n'affiche aucun enregistrement existant. Cette configuration de la proprit vous permet de gagner du temps parce que Microsoft Access ne doit pas extraire tous les enregistrements de la table lie. Gardez l'esprit que d'autres utilisateurs peuvent essayer d'utiliser une table externe au mme moment que vous. Si une base de donnes Microsoft Access se trouve sur le rseau, vous devez viter de verrouiller les enregistrements plus longtemps que ncessaire. Amliorez la performance des tables lies SQL Server Si les donnes de votre application frontale/principale (application frontale/principale : application qui se compose dun fichier de base de donnes principale contenant des tables et des copies dun fichier de base de donnes frontale contenant tous les autres objets de base de donnes qui comportent des liaisons vers les tables principales .) comprennent uniquement des tables provenant de Microsoft SQL Server, vous pouvez utiliser un projet Microsoft Access ou une base de donnes Microsoft Access comme partie frontale de votre application. Cependant, en utilisant un projet Access, vous pouvez tirer parti de certains avantages, notamment un plus grand nombre de tables et une plus grande taille de base de donnes. Si vous souhaitez que les donnes de votre application frontale/principale se composent la fois de tables Microsoft Access et Microsoft SQL Server, vous devez utiliser une base de donnes Access comme partie frontale. Si vous vous connectez une table de base de donnes SQL externe, vous obtiendrez les meilleures performances en crant des attaches (liaison (de tables) : action qui tablit une connexion des donnes issues dune autre application pour vous permettre de visualiser et de modifier les donnes dans lapplication dorigine et dans Access.) aux tables SQL au lieu de les ouvrir directement. Vous pouvez ouvrir les tables SQL externes uniquement au moyen de code Microsoft Visual Basic. Les tables lies sont considrablement plus rapides, plus puissantes et plus efficaces que les tables ouvertes directement. Conseils supplmentaires pour l'amlioration de performance Ne rcuprez que les donnes dont vous avez besoin. Concevez vos requtes de manire limiter le nombre d'enregistrements rcuprs, et ne slectionnez que les champs dont vous avez besoin, de manire ce que Microsoft Access puisse transfrer le minimum de donnes ncessaires sur le rseau. Si vous ne rcuprez pas de nombreux enregistrements, si vous ne mettez pas jour les donnes et si vous n'avez pas besoin de visualiser les modifications apportes par les autres utilisateurs, n'utilisez pas les ensembles de rsultats modifiables (feuilles de rponse dynamiques). Pour empcher la mise jour des ensembles de rsultats dans un formulaire, affectez la valeur Instantan la proprit RecordSetType du formulaire. Les instantans s'ouvrent et se droulent plus rapidement que les feuilles de rponse dynamiques. Si vous avez besoin de rcuprer de nombreux enregistrements, l'utilisation de feuilles de rponse dynamiques est plus rapide et plus efficace que celle des instantans. Par exemple, pour vous dplacer vers la fin d'un instantan, vous devez tlcharger sur l'ordinateur local l'intgralit de l'ensemble de rsultats, tandis qu'avec une feuille de rponse dynamique, vous n'avez qu'une page- cran de donnes tlcharger. Par ailleurs, la manire la plus rapide d'ajouter des enregistrements une table, un formulaire ou une requte consiste cliquer sur Entre Donnes dans le menu Enregistrements (l'option Entre Donnes n'est pas propose si la proprit RecordSetType a la valeur Instantan). Utilisez la mmoire cache. Si vous prvoyez de rutiliser les donnes les plus rcentes du serveur durant l'excution de l'application, vous aurez plus vite fait de rcuprer les donnes en un seul bloc comportant de nombreuses lignes et de les stocker en mmoire cache, plutt que de rcuprer les lignes une par une. Les formulaires et les feuilles de donnes de Microsoft Access utilisent automatiquement la mmoire cache. Si vous rcuprez des donnes l'aide d'un objet Recordset cr sous Microsoft Visual Basic, vous pouvez utiliser la proprit CacheSize pour spcifier le nombre d'enregistrements rcuprer simultanment dans la mmoire locale. Pour lancer des requtes en masse sur des sources de donnes ODBC, optimisez les performances du serveur en attribuant la valeur Oui la proprit FailOnError. vitez l'utilisation de requtes qui ncessitent un traitement sur l'ordinateur client local. Lors de l'accs aux donnes externes, le moteur de base de donnes Jet traite les donnes localement uniquement lorsque l'opration ne peut pas tre effectue par le serveur de base de donnes externe. Les oprations de requte effectues localement (comme cela est dfini par les commandes SQL qui servent les installer) sont les suivantes : Les oprations JOIN entre tables provenant de sources distantes diffrentes. (Par exemple, supposons que la jointure fasse intervenir une table ou une requte locale comportant peu d'enregistrements et une table distante comportant de nombreux enregistrements, et que le champ de jointure de la table distante soit index. Dans ce cas, Access renvoie uniquement les enregistrements correspondant la table ou la requte locale, ce qui amliore considrablement les performances de la requte.) Les oprations JOIN bases sur une requte avec le prdicat DISTINCT ou une clause GROUP BY. Les jointures externes (jointure externe : jointure dans laquelle chaque enregistrement correspondant de deux tables est combin en un enregistrement dans les rsultats de la requte, et une table fournit tous ses enregistrements, mme si les valeurs du champ joint ne correspondent pas celles de lautre table.) dont la syntaxe n'est pas prise en charge par le serveur. Les prdicats DISTINCT contenant des oprations ne pouvant pas tres traites distance. L'oprateur LIKE utilis avec des champs Texte ou Mmo (peut ne pas tre pris en charge par certains serveurs). Les arguments et totaux GROUP BY plusieurs niveaux, tels que ceux utiliss dans les tats comportant plusieurs niveaux de regroupement. Les arguments GROUP BY bass sur une requte avec un prdicat DISTINCT ou une clause GROUP BY. Les requtes Analyse croise qui comportent plus d'un regroupement, ou dont les en-ttes de champ, de ligne ou de colonne contiennent des regroupements, ou encore qui comportent une clause ORDER BY dfinie par l'utilisateur. Les prdicats TOP n ou TOP n PERCENT. Les fonctions dfinies par l'utilisateur ou les oprateurs et fonctions non pris en charge par le serveur. Les combinaisons complexes d'oprations INNER JOIN (jointure interne : jointure o les enregistrements de deux tables sont combins dans les rsultats dune requte uniquement si les valeurs des champs joints satisfont une condition spcifie. Dans une requte, la jointure par dfaut est une jointure interne qui slectionne des enregistrements uniquement si les valeurs des champs joints correspondent.), LEFT JOIN (jointure externe gauche : jointure externe dans laquelle tous les enregistrements de la partie gauche de lopration LEFT JOIN de linstruction SQL de la requte sont ajouts aux rsultats de la requte, mme sil nexiste aucune valeur correspondante dans le champ joint de la table situe droite.) ou RIGHT JOIN (jointure externe droite : jointure externe dans laquelle tous les enregistrements de la partie droite de lopration RIGHT JOIN de linstruction SQL de la requte sont ajouts aux rsultats de la requte, mme sil nexiste aucune valeur correspondante dans le champ joint de la table situe gauche.) dans les requtes imbriques. Amliorer la performance dans un environnement multi-utilisateur Les instructions suivantes peuvent vous aider optimiser les performances des bases de donnes Microsoft Access (base de donnes Microsoft Access : collection de donnes et dobjets (tels que des tables, des requtes ou des formulaires) qui est associe une rubrique ou un objectif donn.) utilises dans un environnement multi-utilisateur. Placez uniquement les tables sur un serveur rseau et gardez les autres objets de base de donnes sur les ordinateurs des utilisateurs. Le fonctionnement de la base de donnes est alors plus rapide car seules les donnes transitent par le rseau. Vous pouvez sparer les tables des autres objets de base de donnes en utilisant l'assistant Fractionnement de base de donnes. Choisissez une stratgie de verrouillage d'enregistrements adquate. Si vous utilisez le verrouillage optimiste (Aucun), Microsoft Access ne verrouille un enregistrement ou une page qu'une fois que l'utilisateur a enregistr les modifications qu'il y a apportes et que les donnes sont disponibles en tant que rsultat. Si vous utilisez le verrouillage pessimiste (Enregistrement modifi), Microsoft Access verrouille l'enregistrement aussitt que l'utilisateur commence le modifier - les enregistrements peuvent tre verrouills pendant des priodes plus longues, mais les utilisateurs n'ont pas dcider des modifications enregistrer si deux utilisateurs travaillent simultanment sur le mme enregistrement. Choisissez la stratgie de niveau de verrouillage approprie (verrouillage au niveau de la page ou de l'enregistrement). vitez les conflits de verrouillage en rglant les paramtres Frquence d'actualisation, Temporisation de mise jour, Nombre de tentatives de mise jour et Frquence d'actualisation ODBC (le cas chant). Optimisez les performances des tables (y compris des tables lies d'autres sources de donnes comme Microsoft SQL Server). Convertissez le fichier de groupe de travail (fichier de groupe de travail : fichier lu par Access au dmarrage, qui contient les informations relatives aux utilisateurs dun groupe de travail. Ces informations comprennent notamment les noms de compte des utilisateurs, leur mot de passe et les groupes auxquels ils appartiennent.) de Microsoft Access 97 ou version antrieure vers la version courante de Microsoft Access. Amliorer la performance des requtes Bases de donnes, tables et index Compactez votre base de donnes. Le compactage peut acclrer les requtes parce qu'il rorganise les enregistrements d'une table, de sorte qu'ils se trouvent dans des pages adjacentes de la base de donnes, tris selon la cl primaire (cl primaire : un ou plusieurs champs (colonnes) dont la valeur identifie de faon unique chaque enregistrement dune table. Une cl primaire naccepte pas les valeurs Null et doit toujours avoir un index unique. Une cl primaire sert relier une table des cls trangres se trouvant dans dautres tables.) de la table. Cette rorganisation amliore les performances des analyses squentielles des enregistrements de la table, car il faut lire moins de pages de la base pour extraire tous les enregistrements. Aprs avoir compact la base, excutez chaque requte pour la compiler avec les statistiques de table mises jour. Indexez (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) tous les champs utiliss pour dfinir des critres (critres : conditions que vous spcifiez pour limiter les enregistrements inclure dans le jeu de rsultats dune requte ou dun filtre.) de requte ainsi que les champs d'index des deux cts d'une jointure (jointure : association entre un champ dune table ou dune requte et un champ du mme type de donnes dans une autre table ou requte. Les jointures indiquent au programme la faon dont les donnes sont lies. Les enregistrements qui ne correspondent pas peuvent, selon le type de jointure dfini, tre inclus ou exclus.) ou crez une relation (relation : association tablie entre des champs communs (colonnes) de deux tables. Une relation peut tre de type un un, un plusieurs ou plusieurs plusieurs.) entre ces champs. Quand vous crez des relations, le moteur de base de donnes Microsoft Jet (moteur de base de donnes Microsoft Jet : partie du systme de base de donnes Access qui rcupre et stocke des donnes dans des bases de donnes utilisateur ou systme. Ce moteur peut tre considr comme un gestionnaire de donnes dans lequel des systmes de bases de donnes, tels que Microsoft Access, sont crs.) cre un index sur la cl trangre (cl trangre : un ou plusieurs champs de table (colonnes) qui font rfrence au(x) champ(s) de cl primaire dune autre table. Une cl trangre indique comment les tables sont lies.) s'il n'existe pas encore d'index ; sinon, il utilise l'index existant. Le moteur de base de donnes Jet optimise automatiquement une requte qui joint une table Microsoft Access de votre disque dur et une table du serveur ODBC (ODBC (Open Database Connectivity) : mthode standard de partage de donnes entre bases de donnes et programmes. Les pilotes ODBC utilisent le langage SQL (Structured Query Language) standard pour accder des donnes externes.) quand la table Access est de petite taille et que les champs joints sont indexs. Dans ce cas, Access amliore les performances en faisant des requtes sur les seuls enregistrements ncessaires sur le serveur. Veillez ce que les tables que vous joignez partir de sources diffrentes soient indexes sur les champs de jointure. Indexez les champs dont vous vous servez pour les tris. Utilisez les oprateurs Entre...Et, Dans et = sur les champs indexs. Champs, calculs et critres Lors de la dfinition d'un champ dans une table, choisissez le type de donnes (type de donnes : caractristique dun champ qui dtermine le type des donnes quil peut contenir. Les diffrents types de donnes sont Boolean, Integer, Long, Currency, Single, Double, Date, String et Variant (par dfaut).) de la plus petite taille possible, qui soit appropri aux donnes de ce champ. De mme, attribuez aux champs utiliss dans les jointures (jointure : association entre un champ dune table ou dune requte et un champ du mme type de donnes dans une autre table ou requte. Les jointures indiquent au programme la faon dont les donnes sont lies. Les enregistrements qui ne correspondent pas peuvent, selon le type de jointure dfini, tre inclus ou exclus.) des types de donnes identiques ou compatibles, comme NumroAuto et Numrique (si la proprit TailleChamp est dfinie Entier long). Lors de la cration d'une requte, n'ajoutez que les champs ncessaires. Dans les champs utiliss pour dfinir des critres (critres : conditions que vous spcifiez pour limiter les enregistrements inclure dans le jeu de rsultats dune requte ou dun filtre.), dsactivez la case cocher Affichage si vous ne souhaitez pas afficher ces champs. Si vous utilisez des critres pour limiter les valeurs d'un champ utilis dans une jointure avec une relation un--un (relation un--plusieurs : association entre deux tables dans laquelle la valeur de cl primaire de chaque enregistrement de la table primaire correspond la valeur du ou des champs correspondants de plusieurs enregistrements de la table lie.), testez si la requte s'excute plus rapidement lorsque les critres sont placs du ct un ou du ct plusieurs de la jointure. Dans certaines requtes, les performances sont meilleures si vous ajoutez les critres au champ qui se trouve du ct un de la jointure que du ct plusieurs . vitez les champs calculs (champ calcul : champ, dfini dans une requte, qui affiche le rsultat dune expression au lieu dafficher les donnes stockes. La valeur est recalcule chaque fois quune valeur de lexpression est modifie.) dans les sous-requtes (sous-requte : instruction SQL SELECT qui se situe lintrieur dune autre requte Slection ou Action.). Si vous ajoutez une requte contenant un champ calcul une autre requte, l'expression (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) qui est dans le champ calcul ralentit les performances de la requte de niveau suprieur. Dans l'exemple ci-dessous, la requte R1 est utilise comme entre de la requte R2 : Q1: SELECT IIF([MyColumn]="Yes","Order Confirmed","Order Not Confirmed") AS X FROM MyTable; Q2: SELECT * FROM Q1 WHERE X="Order Confirmed";
tant donn que l'expression VraiFaux en R1 ne peut pas tre optimise, R2 ne peut pas l'tre non plus. Si une expression non optimisable est imbrique dans une sous-requte, la totalit de la requte ne peut pas tre optimis. La requte peut aussi tre construite comme suit : Q1: SELECT * FROM MyTable WHERE MyColumn = "Yes";
Si des expressions sont ncessaires dans le rsultat, essayez de les mettre dans un contrle (contrle : objet dinterface utilisateur graphique, comme une zone de texte, une case cocher, une barre de dfilement ou un bouton de commande, qui permet aux utilisateurs de contrler le programme. Vous pouvez utiliser des contrles pour afficher des donnes ou des choix, effectuer une action ou rendre linterface utilisateur plus lisible.) d'un formulaire ou d'un tat. Par exemple, vous pouvez changer la requte prcdente en une requte Paramtre demandant la valeur de MaColonne, puis baser un formulaire ou un tat sur cette requte. Sur le formulaire ou sur l'tat, vous pouvez alors ajouter un contrle calcul (contrle calcul : contrle utilis dans un formulaire, un tat ou une page daccs aux donnes pour afficher le rsultat dune expression. Ce rsultat est recalcul chaque fois que lune des valeurs sur laquelle est base lexpression est modifie.) affichant Commande confirme ou Commande non confirme selon la valeur contenue dans MaColonne. Construisez la requte comme suit : PARAMETERS [Pour voir les commandes confirmes, saisissez Oui. Pour voir les commandes non confirmes, saisissez Non.] Texte; SELECT * FROM MaTable WHERE MaColonne = [Pour voir les commandes confirmes, saisissez Oui. Pour voir les commandes non confirmes, saisissez Non.]; Dans le contrle calcul du formulaire ou de l'tat, saisissez =VraiFaux([MaColonne]="Oui","Commande confirme","Commande non confirme") Quand vous groupez des enregistrements par valeurs dans un champ de jointure, spcifiez Regroupement pour le champ qui est dans la mme table que le champ pour lequel vous faites une totalisation (sur lequel vous calculez un regroupement (fonction dagrgation : fonction, telle que SOMME, NB, MOYENNE ou VAR, utilise pour calculer des totaux.)). Par exemple, si vous crez une requte qui totalise le champ Quantit dans la table Dtails commande et les groupe par RfCommande, il est recommand de spcifier Regroupement pour le champ RfCommande de la table Dtails commande. Si vous spcifiez Regroupement pour le champ RfCommande de la table Commandes, Microsoft Access doit d'abord faire une jointure sur tous les enregistrements et ensuite faire le regroupement, au lieu de faire le regroupement et de faire ensuite la jointure avec les seuls champs ncessaires. Pour amliorer la vitesse, utilisez Regroupement sur le moins de champs possible. Comme alternative, utilisez la fonction Premier l o cela convient. Si une requte Oprations comprend une jointure, regroupez les enregistrements dans une requte et ajoutez celle-ci une requte spare qui excutera la jointure. Ceci amliore les performances de certaines requtes. vitez si possible les critres de requte restrictifs sur les champs calculs et non indexs (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.). Optimisation des expressions et de Rushmore Aperu de l'optimisation de Rushmore Microsoft Access peut optimiser des expressions (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) simples ou complexes dans la ligne Critres de la grille de cration (grille de cration : grille qui vous permet de crer une requte ou un filtre en mode Cration de requte ou dans la fentre Filtre/tri avanc. Pour les requtes, cette grille tait auparavant appele grille dinterrogation .) de requte, ou dans une clause WHERE d'une instruction SQL SELECT. Pour certains types d'expressions complexes, Access peut utiliser Rushmore, une technologie d'accs aux donnes utilise par le moteur de base de donnes Microsoft Jet (moteur de base de donnes Microsoft Jet : partie du systme de base de donnes Access qui rcupre et stocke des donnes dans des bases de donnes utilisateur ou systme. Ce moteur peut tre considr comme un gestionnaire de donnes dans lequel des systmes de bases de donnes, tels que Microsoft Access, sont crs.) pour obtenir un meilleur niveau d'optimisation. De plus, la fonction Compte est spcialement optimise pour des requtes utilisant Rushmore. Les requtes Rushmore vont fonctionner avec des tables Access, ainsi qu'avec des tables Microsoft FoxPro et dBASE (fichiers .dbf). Vous ne pouvez pas utiliser Rushmore avec des sources de donnes ODBC (sources de donnes ODBC : donnes et informations requises pour accder ces donnes partir de programmes et de bases de donnes prenant en charge le protocole ODBC (Open Database Connectivity).), dans la mesure o Access envoie ces requtes la source de donnes ODBC au lieu de les traiter localement. Expressions optimisables simples Une expression (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) optimisable simple peut former une expression entire ou apparatre comme partie d'une expression. Elle prend une des formes suivantes : ChampIndex OprateurComparaison Expression [Order Date] = #09/15/96#
ou Expression OprateurComparaison ChampIndex #11/1/96# < [HireDate]
Dans une expression optimisable simple : ChampIndex peut tre un champ qui a son propre index (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) ou un champ qui est le premier dans un index multichamp. OprateurComparaison doit tre l'un des suivants : <, >, =, <=, >=, <>, EntreEt, Comme, Dans. Expression peut tre n'importe quelle expression valide, incluant des constantes, des fonctions et des champs d'autres tables. Si vous avez cr des index pour les champs Nom, ge et DateRecrutement de la table Employs, les expressions suivantes sont des expressions optimisables simples : [Nom] = "Smith" [ge] >= 21 #30/12/90# < [DateRecrutement] Employs.[Nom] = Clients.[Nom] [Nom] Dans ("Smith", "Johnson", "Jones") [ge] Entre 18 Et 65 Expressions complexes Une expression (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) complexe est cre en combinant deux expressions simples avec l'oprateur Et ou l'oprateur Ou. Elle prend une des formes suivantes : ExpressionSimple Et ExpressionSimple ou ExpressionSimple Ou ExpressionSimple Une expression complexe est entirement ou partiellement optimisable, selon que l'une des deux expressions simples ou les deux sont optimisables, et selon l'oprateur qui les combine. Une expression complexe est optimisable avec Rushmore si les trois conditions suivantes sont respectes : L'expression utilise Et ou Ou pour combiner des critres (critres : conditions que vous spcifiez pour limiter les enregistrements inclure dans le jeu de rsultats dune requte ou dun filtre.). Les deux critres sont composs d'expressions optimisables simples. Les deux expressions contiennent des champs indexs (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.). Ces champs peuvent tre indexs individuellement ou faire partie d'un index champs multiples. Remarque Vous pouvez optimiser des index champs multiples si vous faites des requtes sur les champs indexs dans l'ordre de leur apparition dans la fentre Index (fentre Index : dans une base de donnes Access, fentre dans laquelle vous pouvez soit afficher ou modifier les index dune table, soit crer des index multichamps.), en commenant par le premier champ index et en continuant avec les champs adjacents (jusqu' et y compris 10 champs). Par exemple, si vous avez un index champs multiples sur Nom et Prnom, vous pouvez optimiser une requte sur Nom ou sur Nom et Prnom, mais pas sur Prnom. Voici diffrentes combinaisons d'expressions simples dans des critres de recherche, qui indiquent le niveau d'optimisation de la requte. Rsultat de la requte entirement optimisable (en utilisant Rushmore) (expression optimisable) Et (expression optimisable) (expression optimisable) Ou (expression optimisable) Rsultat de la requte partiellement optimisable (n'utilise pas Rushmore) (expression optimisable) Et (expression non optimisable) Rsultat de la requte non optimisable (expression non optimisable) Et (expression non optimisable) (expression non optimisable) Ou (expression non optimisable) Non (expression optimisable) Non (expression non optimisable) Vous pouvez aussi utiliser des parenthses pour regrouper des combinaisons d'expressions simples. Les rgles prcdentes s'appliquent aussi aux combinaisons d'expressions regroupes l'aide de parenthses. Une fois que des expressions optimisables simples ont t combines en expressions complexes, celles-ci peuvent leur tour tre combines pour former des expressions encore plus complexes, qui peuvent tre optimisables en fonction des rgles prcdentes. Ces exemples supposent que vous avez cr des index pour les champs Nom et DateRecrutement (les expressions simples qui les utilisent sont optimisables) mais pas les champs Initiales ou Prnom (les expressions simples qui les utilisent sont optimisables). Les exemples d'expressions simples combines qui suivent montrent jusqu'o le rsultat est optimis. Rsultat de la requte entirement optimisable (en utilisant Rushmore) [LastName] = "Smith" And [Hire Date] < #12/30/90#
[LastName] = "Smith" Or [Hire Date] < #12/30/90#
Rsultat de la requte partiellement optimisable (n'utilise pas Rushmore) [LastName] = "Smith" And [MiddleInitial] = "C"
[FirstName] = "Terry" And [MiddleInitial] = "C"
Rsultat de la requte non optimisable [LastName] = "Smith" Or [MiddleInitial] = "C"
[FirstName] = "Terry" Or [MiddleInitial]= "C"
Suggestions d'ordre gnral Si la proprit Source d'un formulaire ou d'un tat est dfinie avec une instruction SQL (instruction/chane SQL : expression qui dfinit une commande SQL, telles que SELECT, UPDATE ou DELETE, et qui inclut des clauses telles que WHERE et ORDER BY. Les instructions/chanes SQL sont gnralement utilises dans des requtes et dans des fonctions de regroupement.), enregistrez l'instruction SQL comme requte, puis dfinissez la proprit Source avec le nom de la requte. Pour les requtes de mise jour massive portant sur des sources de donnes ODBC (sources de donnes ODBC : donnes et informations requises pour accder ces donnes partir de programmes et de bases de donnes prenant en charge le protocole ODBC (Open Database Connectivity).), optimisez les performances sur le serveur en dfinissant la proprit FailOnError Oui. Si vos donnes ne changent pas souvent, utilisez des requtes Cration de table (requte Cration de table : requte (instruction SQL) qui cre une nouvelle table, puis des enregistrements (lignes) en copiant des enregistrements partir dune table existante ou du rsultat dune requte.) pour crer des tables partir des rsultats de votre requte. Utilisez les tables qui en rsultent plutt que les requtes comme base pour vos formulaires, tats ou autres requtes, et veillez ajouter des index (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) conformment aux indications donnes ici. vitez l'utilisation de fonctions de regroupement de domaine (fonction de domaine : fonction, telle que DAvg ou DMax, utilise lors du calcul de statistiques sur un ensemble denregistrements (domaine).), comme la fonction RechDom, pour accder des donnes d'une table ne figurant pas dans la requte. Les fonctions de regroupement de domaine sont spcifiques Microsoft Access, ce qui signifie que le moteur de base de donnes Microsoft Jet (moteur de base de donnes Microsoft Jet : partie du systme de base de donnes Access qui rcupre et stocke des donnes dans des bases de donnes utilisateur ou systme. Ce moteur peut tre considr comme un gestionnaire de donnes dans lequel des systmes de bases de donnes, tels que Microsoft Access, sont crs.) ne peut pas optimiser les requtes qui les utilisent. Au lieu de cela, ajoutez la requte la table laquelle la fonction accdait, ou crez une sous-requte (sous-requte : instruction SQL SELECT qui se situe lintrieur dune autre requte Slection ou Action.). Si vous crez une requte Analyse croise (requte analyse croise : requte qui calcule une somme, une moyenne, un compte ou un autre type de total effectu sur des enregistrements, puis qui regroupe le rsultat en deux types dinformations : lun affich verticalement sur le ct gauche de la feuille de donnes et lautre affich horizontalement en haut.), utilisez des en-ttes de colonne fixes chaque fois que c'est possible. Amliorer la performance des filtres Si les listes de champ de la fentre Filtrer par formulaire (Filtrer par formulaire : technique de filtrage des donnes qui utilise une version du formulaire ou de la feuille de donnes active avec des champs vides dans lesquels vous pouvez entrer les valeurs que les enregistrements filtrs doivent contenir.) sont trop longues pour pouvoir tre affiches ou qu'elles n'affichent pas les valeurs de la table sous- jacente, vous pouvez modifier les performances de filtrage par formulaire pour toutes les tables, toutes les requtes et tous les formulaires, ou pour un formulaire spcifique seulement. Dans tous les cas, vous pouvez empcher les listes d'afficher les valeurs des champs de la table sous-jacente, afficher les valeurs des champs sur les listes pour certains types de champs indexs (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) ou non indexs ou modifier la plage d'enregistrements qui dtermine si les listes affichent les valeurs d'un champ. Amliorer le filtrage par formulaire pour toutes les tables, toutes les requtes et tous les formulaires de la base de donnes Les valeurs suivantes affectent toutes les tables et requtes, et tous les contrles (contrle : objet dinterface utilisateur graphique, comme une zone de texte, une case cocher, une barre de dfilement ou un bouton de commande, qui permet aux utilisateurs de contrler le programme. Vous pouvez utiliser des contrles pour afficher des donnes ou des choix, effectuer une action ou rendre linterface utilisateur plus lisible.) de zone de texte dont la proprit Rechercher filtre a pour valeur Base de donnes par dfaut. Dans le menu Outils, cliquez sur Options. Cliquez sur l'onglet diter/Rechercher, puis dfinissez les Valeurs par dfaut de Filtrer par formulaire en fonction des performances recherches. Si la liste de valeurs est trop longue pour pouvoir tre affiche dans les champs non indexs uniquement, essayez en limitant les listes aux champs indexs. Pour ce faire, vous pouvez dsactiver les cases cocher Champs locaux non indexs et Champs ODBC. Si la liste est trop longue pour pouvoir tre affiche dans les champs indexs, dsactivez aussi la case cocher Champs locaux indexs puisqu'il y a trop d'enregistrements dans les index pour que les listes puissent s'afficher rapidement. Remarque Si vous utilisez rgulirement le mme champ non index pour filtrer des enregistrements, il est conseill de l'indexer pour amliorer le filtrage et les autres oprations de recherche qui y sont menes. Si les listes n'affichent pas les valeurs de champs indexs ou non indexs, vrifiez que les cases correspondantes sont slectionnes sous Afficher la liste des valeurs dans ou essayez d'augmenter le nombre dans la zone Ne pas afficher les listes dont le nombre de lignes est suprieur afin qu'il soit suprieur ou gal au nombre maximum d'enregistrements de n'importe quel champ non index de la table sous-jacente. Amliorer le filtrage par formulaire pour un formulaire spcifique Pour chaque contrle (contrle : objet dinterface utilisateur graphique, comme une zone de texte, une case cocher, une barre de dfilement ou un bouton de commande, qui permet aux utilisateurs de contrler le programme. Vous pouvez utiliser des contrles pour afficher des donnes ou des choix, effectuer une action ou rendre linterface utilisateur plus lisible.) de zone de texte d'un formulaire, vous pouvez spcifier si les valeurs stockes dans le champ apparaissent sur sa liste dans la fentre Filtrer par formulaire. Ouvrez un formulaire en mode Cration. (mode Cration : fentre qui prsente la cration des objets de base de donnes suivants : tables, requtes, formulaires, tats et macros. En mode Cration, vous pouvez crer de nouveaux objets de base de donnes et modifier la structure dobjets existants.) Affichez la feuille de proprits de n'importe quel contrle de zone de texte. Procdure Ouvrez une table, une requte, un formulaire , un tat ou une page d'accs aux donnes (page daccs aux donnes : page Web, publie partir dAccess, qui comporte une connexion une base de donnes. Une page daccs aux donnes permet dafficher, de modifier et de manipuler les donnes stockes dans la base de donnes, et dajouter des donnes cette dernire. Une page peut galement inclure des donnes provenant dautres sources, comme Excel.) en mode Cration (mode Cration : fentre qui prsente la cration des objets de base de donnes suivants : tables, requtes, formulaires, tats et macros. En mode Cration, vous pouvez crer de nouveaux objets de base de donnes et modifier la structure dobjets existants.). Ouvrez la feuille des proprits en effectuant l'une des actions suivantes : Sur un formulaire ou un tat, double-cliquez sur le slecteur de formulaire (slecteur de formulaire : zone dintersection des rgles, situe dans langle suprieur gauche dun formulaire en mode Cration. Utilisez cette zone pour excuter des oprations au niveau du formulaire, telles que la slection du formulaire.) ou le slecteur d'tat (slecteur dtat : case dintersection des rgles, situe dans langle suprieur gauche dun tat en mode Cration. Utilisez cette case pour excuter des oprations au niveau de ltat, telles que la slection de ltat.).
Slecteur de formulaire ou d'tat Sur une page d'accs aux donnes, cliquez sur Slectionner une page dans le menu Edition. Dans une table ou une requte, cliquez sur Proprits sur la barre d'outils. Pour une section sur un formulaire ou un tat, double-cliquez sur le slecteur de section (slecteur de section : case situe sur le ct gauche dune barre de section lorsquun objet est ouvert en mode Cration. Utilisez cette case pour excuter des oprations au niveau de la section, telles que la slection de la section.).
Slecteur de section Pour une section sur une page d'accs aux donnes, double-cliquez sur la barre de section.
Barre de section Pour dfinir les proprits d'un champ de requte, cliquez sur la cellule dans la ligne Champ, puis sur Proprits sur la barre d'outils. Pour dfinir les proprits d'une liste de champs de requte, cliquez n'importe o dans la liste, puis sur Proprits sur la barre d'outils. Pour dfinir les proprits du corps d'une page d'accs aux donnes, cliquez au-dessus de la premire section, puis sur Proprits sur la barre d'outils. Pour dfinir les proprits d'un contrle (contrle : objet dinterface utilisateur graphique, comme une zone de texte, une case cocher, une barre de dfilement ou un bouton de commande, qui permet aux utilisateurs de contrler le programme. Vous pouvez utiliser des contrles pour afficher des donnes ou des choix, effectuer une action ou rendre linterface utilisateur plus lisible.), cliquez sur le contrle, puis sur Proprits sur la barre d'outils. Dans la feuille des proprits, cliquez sur la proprit que vous souhaitez dfinir, puis excutez l'une des oprations suivantes : Si une flche apparat dans la zone de proprit, cliquez dessus et slectionnez ensuite une valeur dans la liste. Tapez un paramtre ou une expression (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) dans la zone des proprits. Si un bouton Gnrer apparat en regard de la zone de proprit, cliquez sur celui-ci pour afficher un gnrateur (gnrateur : outil Access qui simplifie une tche. Par exemple, le Gnrateur dexpression vous permet de crer rapidement une expression complexe.) ou une liste de gnrateurs. Conseils Pour obtenir de l'aide sur une proprit dans la feuille des proprits, cliquez sur la proprit et appuyez sur F1. Si vous avez besoin d'un espace plus important pour entrer ou modifier un paramtre de proprit, appuyez sur MAJ+F2 afin d'ouvrir la zone de Zoom Remarque Si la proprit AllowDesignChanges d'un formulaire possde la valeur Tous les modes, vous pouvez galement dfinir des proprits de formulaire en mode Formulaire (mode Formulaire : fentre qui affiche un formulaire pour prsenter ou accepter des donnes. Le mode Formulaire constitue le principal moyen dajouter et de modifier des donnes dans des tables. Vous pouvez aussi modifier la conception dun formulaire dans ce mode.) et en mode Feuille de donnes (mode Feuille de donnes : fentre qui affiche des donnes dune table, dun formulaire, dune requte, dune vue ou dune procdure stocke sous forme de lignes et de colonnes. En mode Feuille de donnes, vous pouvez modifier des champs et ajouter, supprimer ou rechercher des donnes.). Dans la zone de la proprit Rechercher filtre, affectez la proprit le paramtre qui permet d'obtenir les performances souhaites. Si la liste est trop longue pour pouvoir tre affiche dans la fentre Filtrer par formulaire, attribuez la proprit Rechercher filtre la valeur Jamais ou bien attribuez-lui la valeur Base de donnes par dfaut et procdez aux modifications adquates dans la bote de dialogue Options (menu Outils). Si la liste dans la fentre Filtrer par formulaire n'affiche pas les valeurs stockes dans le champ, assurez-vous que la valeur Jamais n'est pas attribue la proprit Rechercher filtre. Si la valeur Base de donnes par dfaut ou Toujours est attribue la proprit Rechercher filtre, procdez aux modifications adquates dans la bote de dialogue Options (menu Outils). Amliorer la performance des chercher-remplacer Un index permet Microsoft Access de rechercher et de trier plus rapidement des enregistrements. Access utilise des index pour une table comme vous utilisez un index pour un livre : pour rechercher des donnes, il recherche l'emplacement des donnes dans l'index. Vous pouvez crer des index bass sur un seul champ ou sur plusieurs champs. Les index multichamp vous permettent de faire la distinction entre des enregistrements dans lesquels le premier champ peut avoir la mme valeur. Quels champs indexer ? Vous souhaiterez probablement indexer des champs sur lesquels vous faites frquemment des recherches, sur des champs que vous triez ou sur lesquels vous faites une jointure (jointure : association entre un champ dune table ou dune requte et un champ du mme type de donnes dans une autre table ou requte. Les jointures indiquent au programme la faon dont les donnes sont lies. Les enregistrements qui ne correspondent pas peuvent, selon le type de jointure dfini, tre inclus ou exclus.) avec des champs d'autres tables dans des requtes (requte : question relative aux donnes stockes dans vos tables, ou demande pour excuter une action sur les donnes. Une requte peut rassembler des donnes issues de plusieurs tables pour servir de source de donnes pour un formulaire ou un tat.). Cependant, les index peuvent ralentir certaines requtes Action (requte Action : requte qui copie ou modifie des donnes. Les requtes Action comprennent les requtes suivantes : Ajout, Suppression, Cration de table et Mise jour. Elles sont identifies par un point dexclamation (!) situ ct de leur nom dans le volet Navigation.), comme les requtes Ajout (requte Ajout : requte Action qui ajoute les enregistrements du jeu de rsultats dune requte la fin dune table existante.), quand les index de nombreux champs doivent tre mis jour au moment o ces oprations sont effectues. La cl primaire (cl primaire : un ou plusieurs champs (colonnes) dont la valeur identifie de faon unique chaque enregistrement dune table. Une cl primaire naccepte pas les valeurs Null et doit toujours avoir un index unique. Une cl primaire sert relier une table des cls trangres se trouvant dans dautres tables.) d'une table est indexe automatiquement, et vous ne pouvez pas indexer un champ dont le type de donnes (type de donnes : caractristique dun champ qui dtermine le type des donnes quil peut contenir. Les diffrents types de donnes sont Boolean, Integer, Long, Currency, Single, Double, Date, String et Variant (par dfaut).) est Objet OLE (type de donnes Objet OLE : type de donnes de champ utilis pour les objets crs dans dautres applications, qui peuvent tre lis ou incorpors (insrs) dans une base de donnes Access.). Pour les autres champs, indexez-les quand tout ce qui suit s'applique : Les donnes du champ sont de type Texte, Numrique, Montaire ou Date/Heure. Vous comptez rechercher des valeurs stockes dans le champ. Vous comptez trier des valeurs du champ. Vous comptez enregistrer de nombreuses valeurs diffrentes dans ce champ. Si beaucoup de valeurs de ce champ sont identiques, l'index peut ne pas acclrer les requtes de faon significative. Index multichamp Si vous pensez que vous aller rechercher ou trier souvent les champs par deux ou plus la fois, crez un index pour cette combinaison de champs. Par exemple, si vous dfinissez souvent des critres pour les champs Nom et Prnom de la mme requte, il est recommand de crer un index multichamp sur ces deux champs. Lorsque vous triez une table l'aide d'un index multichamp, Microsoft Access trie d'abord sur le premier champ dfini pour cet index. Si des enregistrements contiennent des doublons dans le premier champ, Microsoft Access trie ensuite sur le second champ dfini pour cet index, et ainsi de suite. Vous pouvez inclure jusqu' 10 champs dans un index multichamp. Amliorer la performance des formulaires et sous-formulaires Il existe plusieurs solutions permettant d'accrotre la vitesse d'excution de vos formulaires. Conseils d'ordre gnral vitez les contrles superposs. Ne triez pas les enregistrements dans une requte (requte : question relative aux donnes stockes dans vos tables, ou demande pour excuter une action sur les donnes. Une requte peut rassembler des donnes issues de plusieurs tables pour servir de source de donnes pour un formulaire ou un tat.) sous-jacente, moins que l'ordre des enregistrements soit important, spcialement avec des requtes multitables. Si la source de donnes (source denregistrement : source de donnes sous-jacente dun formulaire, dun tat ou dune page daccs aux donnes. Dans une base de donnes Access, il peut sagir dune table, dune requte ou dune instruction SQL. Dans un projet Access, il peut sagir dune table, dune vue, dune instruction SQL ou dune procdure stocke.) sous-jacente contient de nombreux enregistrements et que vous voulez utiliser le formulaire principalement pour la saisie de nouveaux enregistrements, dfinissez la proprit EntreDonnes du formulaire Oui, de manire ce que le formulaire s'ouvre sur un enregistrement vide. Si vous ouvrez un formulaire affichant tous ses enregistrements, Microsoft Access doit lire tous les enregistrements avant de pouvoir afficher l'enregistrement vide la fin du jeu d'enregistrements. Fermez les formulaires que vous n'utilisez pas. Conseils pour les formulaires qui contiennent des images et des objets Utilisez les bitmaps et les autres objets graphiques avec modration. Convertissez les cadres d'objets indpendants qui affichent des images en contrle Image. Prfrez les bitmaps en noir et blanc aux bitmaps en couleur. Conseils pour les formulaires qui contiennent du code Un formulaire sans module de formulaire (module de formulaire : module qui inclut du code VBA (Visual Basic pour Applications) pour toutes les procdures vnementielles dclenches par des vnements se produisant sur un formulaire spcifique ou sur ses contrles.) se charge plus rapidement et occupe moins d'espace disque. Si un formulaire ou des contrles sur le formulaire n'utilisent pas de procdures vnementielles (procdure vnementielle : procdure excute automatiquement en rponse un vnement provoqu par lutilisateur ou le code du programme, ou dclench par le systme.), le formulaire ne requiert pas de module de formulaire. liminez le code des formulaires qui n'en ont pas pas besoin en dfinissant la proprit du formulaire AvecModule Non. La proprit AvecModule spcifie si le module a un module de formulaire. Au lieu d'utiliser des boutons de commandes avec des procdures vnementielles, vous pouvez utiliser des boutons de commande avec des macros (macro : action ou ensemble dactions que vous pouvez utiliser pour automatiser des tches.) ou des liens hypertexte (lien hypertexte : texte soulign et en couleur ou graphique sur lequel vous cliquez pour atteindre un fichier, un endroit spcifique dans un fichier, une page Web sur le World Wide Web ou une page Web sur un intranet. Les liens hypertexte permettent galement daccder des groupes de discussion et des sites Gopher, Telnet et FTP.). Remarques Si un formulaire contient des procdures vnementielles et si vous dcidez de supprimer la totalit du code des procdures vnementielles de ce formulaire, vous devez dfinir Non la proprit AvecModule, pour supprimer compltement le module du formulaire. Vous pouvez toujours utiliser le code avec un formulaire qui n'a pas de module de formulaire en appelant des procdures Function depuis un module standard en utilisant une expression (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.). (Vous ne pouvez pas utiliser de procdures Sub, parce qu'elles ne peuvent pas tre appeles avec une expression). Pour faire cela, dfinissez une procdure Function dans un module standard et appelez ensuite cette fonction depuis une proprit d'vnement (proprit de type vnement : attribut nomm dun contrle, dun formulaire, dun rapport, dune page daccs aux donnes ou dune section que vous utilisez pour rpondre un vnement associ. Vous pouvez excuter une procdure ou une macro lorsquun vnement se produit en dfinissant la proprit de type vnement correspondante.) du formulaire ou depuis un contrle. Par exemple, pour utiliser un bouton de commande pour appeler une fonction qui ouvre un formulaire, ajoutez une expression pour la proprit SurClic du bouton de commande comme celle-ci : =OpenDataEntry(). Conseils pour les sous-formulaires Basez les sous-formulaires sur des requtes plutt que sur des tables et n'incluez que les champs de la source d'enregistrements (source denregistrement : source de donnes sous-jacente dun formulaire, dun tat ou dune page daccs aux donnes. Dans une base de donnes Access, il peut sagir dune table, dune requte ou dune instruction SQL. Dans un projet Access, il peut sagir dune table, dune vue, dune instruction SQL ou dune procdure stocke.) qui sont absolument ncessaires. Des champs supplmentaires peuvent rduire les performances du sous-formulaire. Indexez (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) tous les champs du sous-formulaire qui sont lis au formulaire principal (formulaire principal : formulaire qui contient un ou plusieurs sous-formulaires.). Indexez tous les champs du sous-formulaire utiliss pour la dfinition de critres. Dfinissez Non les proprits ModifAutorise, AjoutAutoris et SupprAutorise du sous-formulaire si vous ne comptez pas modifier les enregistrements du sous-formulaire. Il est galement possible de dfinir la proprit TypeRecordset Instantan). Amliorer la performance des zones de liste et des zones de liste modifiables Il est possible d'accrotre la vitesse d'excution de vos zones de liste, zones de liste modifiable et zones de liste droulante (zone de liste droulante : contrle dune page daccs aux donnes qui, lorsque lutilisateur clique sur celui-ci, affiche une liste partir de laquelle une valeur peut tre slectionne. Il est impossible de taper une valeur dans une zone de liste droulante.) : Gnrez la zone de liste, la zone de liste modifiable ou la zone de liste droulante partir d'une requte (requte : question relative aux donnes stockes dans vos tables, ou demande pour excuter une action sur les donnes. Une requte peut rassembler des donnes issues de plusieurs tables pour servir de source de donnes pour un formulaire ou un tat.) enregistre plutt que d'une instruction SQL. Dans un formulaire, si vous utilisez un Assistant pour crer une zone de liste ou une zone de liste droulante, Microsoft Access attribue automatiquement une instruction SQL la proprit RowSource. Pour transformer la valeur de la proprit RowSource en une requte enregistre, cliquez sur le bouton Gnrer en regard de la zone de la proprit RowSource. Dans la fentre Gnrateur de requte, cliquez sur Enregistrer dans le menu Fichier, puis tapez le nom de la requte. Lorsque vous fermez la fentre Gnrateur de requte, cliquez sur Oui lorsque vous tes invit mettre jour la proprit. Gnrez la zone de liste droulante partir d'une requte enregistre plutt qu' partir d'une table. Dans une page d'accs aux donnes, si vous utilisez un Assistant pour crer une zone de liste droulante, Microsoft Access attribue automatiquement la table spcifie dans l'Assistant la proprit ListRowSource du contrle. Pour rcuprer des lignes d'une requte au lieu d'une table, slectionnez le nom de la requte dans la zone de la proprit ListRowSource. Dans la requte spcifie dans la zone de la proprit RowSource ou ListRowSource, n'incluez que les champs qui sont absolument indispensables. Le fait d'ajouter des champs supplmentaires peut diminuer les performances. Indexez (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) le premier champ affich dans la zone de liste modifiable, la zone de liste ou la zone de liste droulante, ainsi que le champ li (s'ils sont diffrents). Dans les zones de liste modifiable d'un formulaire, attribuez Non la proprit AutoExpand pour dsactiver la fonction de remplissage en cours de frappe. Dans un formulaire, si la valeur Oui est attribue la proprit AutoExpand d'une zone de liste modifiable, le premier champ affich doit tre un champ de type Texte et non de type Numrique. Afin de trouver une valeur correspondante dans la liste, Microsoft Access convertit une valeur numrique en texte. Si le type de donnes est Texte, Microsoft Access ne doit pas effectuer cette conversion. Dans un formulaire, si le champ li d'une zone de liste modifiable Liste de choix n'est pas le champ affich : N'utilisez pas d'expressions (expression : toute combinaison doprateurs mathmatiques ou logiques, de constantes, de fonctions, de noms de champs, de contrles et de proprits qui svalue pour donner une seule valeur. Les expressions peuvent raliser des calculs, manipuler des caractres ou tester des donnes.) pour le champ li ou le champ affich. N'utilisez pas de restrictions dans le contenu. Utilisez des contenus table unique (ou requtes) plutt que des contenus tables multiples. Ne crez pas de zones de liste, de zones de liste modifiable ou de zones de liste droulante partir de donnes de tables lies (table lie : table stocke dans un fichier qui se trouve hors de la base de donnes ouverte partir de laquelle Access peut accder des enregistrements. Vous pouvez ajouter, supprimer et modifier des enregistrements dune table lie, mais vous ne pouvez pas en modifier la structure.) si ces donnes ne vont pas changer. Il est prfrable, dans ce cas, d'importer les donnes dans votre base de donnes. Remarque Le Gnrateur de requte n'est pas disponible dans une page d'accs aux donnes. Les Assistants ne sont pas disponibles dans une page d'accs aux donnes autonome ou lorsque vous pointez vers une base de donnes dans une page d'accs aux donnes autre que celle ouverte. Dans les deux cas, vous devez crer une zone de liste ou une zone de liste droulante manuellement. Amliorer la performance des tats et des sous-tats Vous pouvez accrotre la vitesse d'impression de vos tats de plusieurs faons. Conseils d'ordre gnral vitez les contrles superposs. vitez le tri et le regroupement sur des expressions. Indexez (index : fonctionnalit qui acclre la recherche et le tri dans une table base sur des valeurs cls et qui peut garantir lunicit des lignes dune table. La cl primaire dune table est automatiquement indexe. Certains champs ne peuvent pas tre indexs en raison du type de donnes quils contiennent.) les champs sur lesquels vous effectuez un tri ou un regroupement. vitez d'utiliser des fonctions de regroupement de domaine (fonction de domaine : fonction, telle que DAvg ou DMax, utilise lors du calcul de statistiques sur un ensemble denregistrements (domaine).). Incluez le champ dans la requte sous-jacente de l'tat ou utilisez un sous-tat (sous- tat : tat contenu dans un autre tat.). Assurez-vous que la requte sous-jacente de l'tat est optimise. Utilisez la proprit AvecDonnes ou l'vnement AucuneDonne pour dterminer si un tat est li un jeu d'enregistrements vide. Conseils pour les tats qui contiennent des images et des objets Utilisez les bitmaps et les autres objets graphiques avec modration. Convertissez les cadres d'objets indpendants (cadre dobjet indpendant : contrle que vous placez dans un formulaire ou un tat pour contenir un objet indpendant. Un objet indpendant est un objet, par exemple une image, dont la valeur nest pas drive de donnes stockes dans une table.) affichant des images en contrle Image (contrle Image : contrle qui permet dafficher une image dans un formulaire ou un tat.). Prfrez les bitmaps en noir et blanc aux bitmaps en couleur. Conseils pour les sous-tats Basez vos sous-tats sur des requtes plutt que sur des tables et n'incluez que les champs de la source d'enregistrements qui sont absolument ncessaires. L'ajout de champs supplmentaires peut diminuer les performances d'un sous-tat. Indexez tous les champs du sous-tat lis l'tat principal. Indexez tous les champs du sous-tat utiliss pour des critres (critres : conditions que vous spcifiez pour limiter les enregistrements inclure dans le jeu de rsultats dune requte ou dun filtre.). Amliorer la performance de la page d'accs aux donnes Plusieurs oprations sont possibles afin de charger plus rapidement vos pages d'accs aux donnes en mode Page (mode Page : fentre Access dans laquelle vous pouvez parcourir le contenu dune page daccs aux donnes. La fonctionnalit des pages est la mme en mode Page que dans Microsoft Internet Explorer version 5.0 ou ultrieure.) ou dans Microsoft Internet Explorer 5.01 avec le Service Pack 2 (SP2) ou ultrieur. Conseils d'ordre gnral Lorsque vous utilisez une page d'accs aux donnes dans Microsoft Access, fermez tous les objets de base de donnes superflus. Lorsque vous utilisez une page d'accs aux donnes dans Internet Explorer, fermez toutes les fentres superflues. Dans les pages d'accs aux donnes utilises pour la saisie de donnes, dfinissez la proprit DataEntry sur Vrai de manire ce que la page s'ouvre sur un enregistrement vide. Indexez tous les champs que vous triez, regroupez ou filtrez. Liez une page d'accs aux donnes un fichier de donnes XML, afin que la page puisse obtenir ses donnes partir d'un fichier situ sur le client local plutt que de devoir accder au serveur de base de donnes. Contrles vitez les contrles superposs. Utilisez des contrles SPAN lis plutt que des zones de texte pour afficher toute donne non modifiable (par exemple, pour afficher des valeurs numrotes automatiquement, des valeurs drives d'expressions et des liens hypertexte). Scurit Utilisez les contrles d'extension ou les contrles de lien hypertexte dpendants avec prudence. Des utilisateurs non autoriss sont susceptibles d'insrer du texte HTML dangereux dans ces contrles. Le traitement de ce texte sans validation ni modification peut entraner la perte d'informations personnelles ou d'autres donnes. Pour empcher que le texte HTML contenu dans un contrle ne soit affich, codez le contenu du contrle. Images et objets Utilisez les bitmaps et autres objets graphiques avec parcimonie. Prfrez les bitmaps monochromes aux bitmaps couleur. Pages regroupes Assurez-vous que la proprit ExpandedByDefault est dfinie sur Faux pour le niveau de regroupement le plus haut. Faire de mme pour les niveaux de regroupement les plus bas (proprit dfinie sur Faux) acclrera les autres oprations aprs l'ouverture de la page. Assurez-vous que la proprit DataPageSize du niveau de regroupement est dfinie sur un petit nombre plutt que sur un grand ou sur Tout. Plus le nombre est petit, plus les enregistrements s'affichent rapidement. Dans une page qui contient des enregistrements avec une relation un--plusieurs, les enregistrements de regroupement se font par table plutt que par champ ou expression. Dans une page utilisant des tables avec une relation un--plusieurs, liez chaque section une table plutt qu' une requte. Microsoft Access recherche les enregistrements dans une table uniquement lorsqu'il en a besoin pour les afficher dans la page. Avec une requte, Access recherche tous les enregistrements avant mme d'en enregistrer un seul dans la page. Utilisez une requte uniquement lorsque vous voulez limiter les donnes utilises dans la page, calculer des valeurs de regroupement ou excuter une tche ne pouvant tre accomplie que dans une requte. Obtenir plus de prcisions sur la transformation de votre base de donnes en fichier MDE pour amliorer la performance Si votre base de donnes contient du code Microsoft Visual Basic pour Applications (VBA) (Visual Basic pour Applications (VBA) : version macrolangage de Microsoft Visual Basic qui sert programmer des applications Windows. VBA est fourni avec plusieurs applications Microsoft.), l'enregistrement de votre base de donnes Microsoft Access (base de donnes : collection de donnes relatives un sujet ou un objectif particulier. Dans une base de donnes, les informations sur une entit particulire, par exemple, un employ ou une commande, sont classs en tables, enregistrements et champs.) comme fichier MDE compile tous les modules, supprime tout le code source ditable et compacte la base de donnes destination. Votre code Visual Basic va continuer fonctionner, mais il ne peut pas tre affich ni modifi. Scurit L'enregistrement de votre base de donnes comme fichier MDE protge vos formulaires et vos tats sans obliger vos utilisateurs se connecter ou sans vous obliger crer et grer des comptes d'utilisateur (compte dutilisateur : compte identifi par un nom dutilisateur et un numro didentification personnel (PID), cr pour grer les autorisations octroyes lutilisateur pour accder des objets de base de donnes dans un groupe de travail Access.) et des autorisations (autorisations : ensemble dattributs qui spcifie le type daccs aux donnes ou aux objets dune base de donnes dont dispose un utilisateur.) qui sont ncessaires pour obtenir une scurit au niveau des utilisateurs (scurit au niveau utilisateur : lorsque la scurit au niveau utilisateur est utilise dans une base de donnes Access, un administrateur de base de donnes ou le propritaire dun objet peut octroyer des utilisateurs individuels ou des groupes des autorisations daccs spcifiques des tables, des requtes, des formulaires, des tats et des macros.). Votre base de donnes va continuer fonctionner normalement, mais vous pouvez continuer mettre jour des donnes et excuter des tats. De plus, la taille de la base de donnes va tre rduite grce la suppression du code et l'utilisation de la mmoire va donc tre optimise, ce qui va accrotre les performances. En enregistrant la base de donnes comme fichier MDE, vous empchez les oprations suivantes : Affichage, modification ou cration de formulaires, d'tats ou de modules en mode Cration. Ajout, suppression ou modification de rfrences aux bibliothques d'objets ou aux bases de donnes. Modification du code : un fichier MDE ne contient pas de code source. Importation ou exportation des formulaires, des tats ou des modules. Cependant, les tables, les requtes, les pages d'accs aux donnes (page daccs aux donnes : page Web, publie partir dAccess, qui comporte une connexion une base de donnes. Une page daccs aux donnes permet dafficher, de modifier et de manipuler les donnes stockes dans la base de donnes, et dajouter des donnes cette dernire. Une page peut galement inclure des donnes provenant dautres sources, comme Excel.) et les macros peuvent tre importes de ou exportes vers des bases de donnes non MDE. Considrations sur la ncessit de modifier la structure des formulaires, des tats ou des modules Assurez-vous de conserver une copie de votre base de donnes Access originale. Si vous devez modifier la structure de formulaires, d'tats ou de modules dans un fichier MDE, vous devez modifier la base de donnes Access originale et la renregistrer comme fichier MDE. Si vous enregistrez comme fichier MDE une base de donnes comportant des tables, vous risquez de perdre du temps rcuprer les diffrentes versions des donnes si vous devez modifier par la suite la structure d'un formulaire, d'un tat ou d'un module. Pour cette raison, l'enregistrement d'une base de donnes Access comme fichier MDE convient mieux la base de donnes d'avant-plan d'une application avant-plan/arrire-plan (application frontale/principale : application qui se compose dun fichier de base de donnes principale contenant des tables et des copies dun fichier de base de donnes frontale contenant tous les autres objets de base de donnes qui comportent des liaisons vers les tables principales .). Code qui n'utilise plus une scurit au niveau de l'utilisateur Dans les prcdentes versions d'Access, une scurit au niveau de l'utilisateur pouvait tre mise en uvre avec des modules VBA. Dans Microsoft Access 2000 et les versions ultrieures, tout le code Visual Basic d'un fichier de base de donnes Access (.mdb) ou d'un fichier de projet Access (.adp) (projet Microsoft Access : fichier Access qui tablit une connexion une base de donnes Microsoft SQL Server et qui sert crer des applications client-serveur. Un fichier de projet ne contient aucune donne ni aucun objet bas sur la dfinition de donnes telles que des tables et des vues.), y compris les modules autonomes (module standard : module VBA (Visual Basic pour Applications) dans lequel vous pouvez placer des procdures Sub et Function que vous souhaitez rendre accessibles aux autres procdures dans lensemble de votre base de donnes.) et les modules de classe (module de classe : module qui peut contenir la dfinition dun nouvel objet. Chaque instance dune classe cre un nouvel objet. Les procdures dfinies dans le module deviennent des proprits et des mthodes de lobjet. Les modules de classe peuvent exister seuls ou avec des formulaires et des tats.) (comme le code associ aux formulaires et aux tats) doit activer les fonctionnalits de scurit en dfinissant un mot de passe ou en enregistrant la base de donnes comme fichier MDE ou ADE, ce qui supprime le code source. Considrations faire avant d'enregistrer votre base de donnes comme ficher MDE Certaines restrictions peuvent vous empcher d'enregistrer votre base de donnes comme fichier MDE : Vous devez avoir un mot de passe pour l'accs au code Visual Basic. Si votre base de donnes est rplique, vous devez d'abord supprimer la rplication (rplication : processus de copie dune table de donnes de sorte que deux copies, ou plus, puissent changer des mises jour de donnes ou des objets rpliqus. Cet change est appel synchronisation .). Si votre base de donnes Access rfrence une autre base de donnes Access ou un complment (macro complmentaire : programme complmentaire qui ajoute des commandes personnalises ou des fonctions personnalises Microsoft Office.), vous devez enregistrer toutes les bases de donnes Access ou les complments dans la chane de rfrences comme fichiers MDE. De plus, si vous dfinissez un mot de passe de base de donnes ou des fonctions de scurit au niveau de l'utilisateur avant d'enregistrer votre base de donnes comme fichier MDE, ces caractristiques vont continuer de s'appliquer un fichier MDE cr partir de cette base de donnes. Si un mot de passe de base de donnes ou des fonctions de scurit au niveau de l'utilisateur sont dfinis pour votre base de donnes Access et que vous souhaitez supprimer ces fonctionnalits, vous devez le faire avant de l'enregistrer comme fichier MDE. Pour enregistrer comme fichier MDE une base de donnes Access qui a adopt des fonctions de scurit au niveau de l'utilisateur, vous devez satisfaire aux lments requis suivants : Vous devez joindre le fichier de groupe de travail (fichier de groupe de travail : fichier lu par Access au dmarrage, qui contient les informations relatives aux utilisateurs dun groupe de travail. Ces informations comprennent notamment les noms de compte des utilisateurs, leur mot de passe et les groupes auxquels ils appartiennent.) qui dfinit les comptes d'utilisateur utiliss pour accder la base de donnes ou ceux qui taient utiliss quand la base de donnes a t cre. Votre compte d'utilisateur doit possder les autorisations Ouvrir/Excuter et Ouvrir en mode exclusif sur la base de donnes. Votre compte d'utilisateur doit avoir les autorisations Modifier la structure or Administrer pour toutes les tables de la base de donnes ou bien vous devez tre le propritaire (propritaire : lorsque la scurit est utilise, compte dutilisateur qui contrle une base de donnes ou un objet de base de donnes. Par dfaut, le propritaire est le compte dutilisateur qui a cr une base de donnes ou un objet de base de donnes.) de toutes les tables de la base de donnes. Votre compte d'utilisateur doit avoir l'autorisation Lire la structure pour tous les objets de la base de donnes. Rfrences et fichiers MDE Si vous essayez de crer un fichier MDE partir d'une base de donnes Microsoft Access (.mdb) ou d'un complment (.mda) (macro complmentaire : programme complmentaire qui ajoute des commandes personnalises ou des fonctions personnalises Microsoft Office.) qui rfrence une autre base de donnes ou un complment Access, Access affiche un message d'erreur et ne vous laisse par terminer l'opration. Pour enregistrer une base de donnes qui rfrence une autre base de donnes comme fichier MDE, vous devez enregistrer toutes les bases de donnes dans la chane de rfrences comme fichier MDE, en commenant par la premire base de donnes rfrence. Aprs avoir enregistr la premire base de donnes comme fichier MDE, vous devez ensuite mettre jour la rfrence dans la base de donnes suivante pour pointer vers le nouveau fichier MDE avant de l'enregistrer comme fichier MDE, etc. Par exemple, si Base1.mdb fait rfrence Base2.mdb, qui fait elle-mme rfrence Base3.mda, vous procdez comme suit : Enregistrez Base3.mda sous Base3.mde. Ouvrez Base2.mdb et modifiez les rfrences afin qu'elles pointent sur Base3.mde. Enregistrez Base2.mdb sous Base2.mde. Ouvrez Base1.mdb et modifiez les rfrences afin qu'elles pointent sur Base2.mde. Enregistrez Base1.mdb sous Base1.mde. Enregistrement d'une base de donnes rplique comme fichier MDE Une base de donnes rplique (un rplica (rplica : copie dune base de donnes qui est membre dun jeu de rplicas et quil est possible de synchroniser avec les autres rplicas du jeu. Les modifications apportes aux donnes dune table rplique situe dans un rplica sont envoyes et appliques aux autres rplicas.) ou un rplica-matre (rplica-matre : seul membre du jeu de rplicas dans lequel vous pouvez apporter des modifications la structure de la base de donnes, lesquelles peuvent tre propages aux autres rplicas.)) ne peut pas tre enregistre comme fichier MDE. Pour enregistrer une base de donnes rplique comme fichier MDE, vous devez d'abord supprimer la rplication (rplication : processus de copie dune table de donnes de sorte que deux copies, ou plus, puissent changer des mises jour de donnes ou des objets rpliqus. Cet change est appel synchronisation .). Une fois que la base de donnes est enregistre comme fichier MDE, elle peut tre rplique ; cependant, la rplication est uniquement recommande dans les situations o aucune modification ne doit tre apporte la base de donnes originale. Il n'y a aucun moyen d'apporter des modifications la structure des formulaires, des tats ou du code dans un fichier MDE de rplica- matre, et les modifications de structure faites la base de donnes originale ne peuvent pas tre synchronises (synchronisation : processus de mise jour de deux membres dun jeu de rplicas par lchange de tous les enregistrements et objets mis jour dans chaque membre. Deux membres du jeu de rplicas sont synchroniss lorsque les modifications effectues dans chacun dentre eux ont t appliques lautre.) avec des rplicas MDE prexistants. Pour cette raison, si vous devez faire une modification de structure un jeu de rplicas (jeu de rplicas : rplica-matre et tous les rplicas qui partagent la mme structure de base de donnes et un identificateur de jeu de rplicas unique.) de fichiers MDE, vous devez procder ces modifications dans la base de donnes originale, l'enregistrer nouveau comme fichier MDE, et puis crer et distribuer un jeu de rplicas entirement nouveau partir du nouveau fichier MDE. Obtenir des informations sur le compactage d'une base de donnes Access Microsoft Access combine le compactage et la rparation d'un fichier Access (fichier Microsoft Access : fichier de base de donnes ou de projet. Dans Access 2007, les objets de base de donnes et les donnes sont stocks dans des fichiers .accdb. Les versions antrieures utilisent des fichiers .mdb. Un fichier de projet Access ne contient aucune donne et est utilis pour tablir une connexion une base de donnes SQL Server.) en un seul processus. Compactage d'un fichier Access Si vous supprimez des donnes ou des objets dans une base de donnes Access (base de donnes Microsoft Access : collection de donnes et dobjets (tels que des tables, des requtes ou des formulaires) qui est associe une rubrique ou un objectif donn.) ou si vous supprimez des objets dans un projet Access (projet Microsoft Access : fichier Access qui tablit une connexion une base de donnes Microsoft SQL Server et qui sert crer des applications client-serveur. Un fichier de projet ne contient aucune donne ni aucun objet bas sur la dfinition de donnes telles que des tables et des vues.), le fichier devient fragment et utilise l'espace disque de faon peu efficace. Le compactage du fichier Access fait une copie du fichier et rarrange le stockage du fichier sur votre disque. Le compactage d'une base de donnes d'une version antrieure d'Access ne va pas la convertir au format Access 2002 - 2003. Le compactage optimise les performances tant des bases de donnes que des projets Access. Cependant, dans un projet Access, le compactage n'affecte pas les objets de base de donnes (objets de base de donnes : une base de donnes Access contient des objets tels que des tables, des requtes, des formulaires, des tats, des pages, des macros et des modules. Un projet Access contient des objets tels que des formulaires, des tats, des pages, des macros et des modules.) comme les tables ou les vues qui se trouvent dans la base de donnes Microsoft SQL Server (base de donnes Microsoft SQL Server : base de donnes compose de tables, de vues, dindex, de procdures stockes, de fonctions et de dclencheurs. Vous pouvez associer votre base de donnes aux donnes SQL Server via une liaison ODBC ou en crant un fichier de projet Access (*.adp).) au lieu d'tre dans le projet Access lui-mme. Le compactage n'a pas d'effet sur l'autonumrotation dans un projet Access. Cependant, dans une base de donnes Access, si vous avez supprim des enregistrements de la fin d'une table qui a un champ NumroAuto (type de donnes NumroAuto : dans une base de donnes Microsoft Access, type de donnes de champ qui stocke automatiquement un numro unique pour chaque enregistrement lors de son ajout une table. Trois types de numros peuvent tre crs : squentiel, alatoire et numro de rplication.), le compactage de la base de donnes rinitialise la valeur NumroAuto ; cette valeur NumroAuto du prochain enregistrement que vous ajoutez sera suprieure d'une unit la valeur NumroAuto du dernier enregistrement non effac de la table. Rparation d'un fichier Access Dans la plupart des cas, Microsoft Access dtecte si un fichier Access est endommag quand vous essayez de l'ouvrir et il vous donne la possibilit de le rparer ce moment-l. Si le fichier Access actif contient une rfrence un autre fichier Access qui est corrompu, Access n'essaie pas de rparer l'autre fichier. Dans certaines situations, Access peut ne pas dtecter qu'un fichier est endommag. Si un fichier Access se comporte de faon imprvisible, compactez-le et rparez-le. Access peut rparer : Des lments corrompus dans une table d'une base de donnes Access (base de donnes Microsoft Access : collection de donnes et dobjets (tels que des tables, des requtes ou des formulaires) qui est associe une rubrique ou un objectif donn.). Des informations manquantes sur la structure d'un projet VBA (Visual Basic pour Applications) de fichier Access. Des lments corrompus dans un formulaire, un tat ou un module. Des informations manquantes dont a besoin Access pour ouvrir un formulaire, un tat ou un module particulier. Pour prvenir la corruption de fichiers Access, suivez ces conseils : Compactez et rparez rgulirement les fichiers Access. Vous pouvez spcifier qu'Access doit compacter automatiquement un fichier quand vous le fermez. Sauvegardez rgulirement vos fichiers Access. vitez de quitter Access de faon inattendue. Par exemple, ne quittez pas soudainement Access en teignant votre ordinateur. Si vous connaissez des problmes rseau, vitez d'utiliser une base de donnes Access partage jusqu' ce que les problmes soient rsolus. Si possible, dplacez la base de donnes Access sur un ordinateur o vous pouvez y accder localement plutt que via le rseau. Rparation de fichiers aprs un arrt inattendu d'Access Si un problme important survient et provoque l'arrt de Microsoft Access, Access redmarre, cre une copie du fichier qui tait ouvert et l'appelle nom_fichier_Backup.mdb ou nom_fichier_Backup.adp, o nom_fichier est le nom du fichier original. Si nom_fichier_Backup.mdb ou nom_fichier_Backup.adp existe dj, Access vous demande de spcifier le nom du fichier. Access essaie ensuite de compacter et de rparer le fichier original.