Access stocke toutes les tables de base de données, les requêtes, les formulaires, les rapports, les macros et les modules de la base de données Access Jet sous la forme d’un seul fichier.
pour le développement de requêtes, Access propose un « Query Designer », une interface utilisateur graphique qui permet aux utilisateurs de créer des requêtes sans connaissance du langage de requête structuré. Dans le concepteur de requêtes, les utilisateurs peuvent « afficher » les sources de données de la requête (qui peuvent être des tables ou des requêtes) et sélectionner les champs qu’ils souhaitent renvoyer en Les cliquant et en les faisant glisser dans la grille., On peut configurer des jointures en cliquant et en faisant glisser des champs dans des tables vers des champs dans d’autres tables. Access permet aux utilisateurs de visualiser et de manipuler le code SQL si désiré. Toute table D’accès, y compris les tables liées provenant de différentes sources de données, peut être utilisée dans une requête.
Access prend également en charge la création de « requêtes pass-through ». Ces extraits de code SQL peuvent adresser des sources de données externes via l’utilisation de connexions ODBC sur la machine locale. Cela permet aux utilisateurs d’interagir avec des données stockées en dehors du programme Access sans utiliser de tables liées ou Jet.,Les utilisateurs construisent les requêtes pass-through En utilisant la syntaxe SQL prise en charge par la source de données externe.
lors du développement de rapports (dans « Design View »), les ajouts ou modifications aux contrôles entraînent l’exécution de toutes les requêtes liées en arrière-plan et le concepteur est obligé d’attendre que les enregistrements soient retournés avant de pouvoir effectuer une autre modification. Cette fonctionnalité ne peut pas être désactivée.
Les Non-programmeurs peuvent utiliser la fonction macro pour automatiser des tâches simples grâce à une série de sélections déroulantes., Les Macros permettent aux utilisateurs d’enchaîner facilement des commandes telles que l’exécution de requêtes, l’importation ou l’exportation de données, l’ouverture et la fermeture de formulaires, la prévisualisation et l’impression de rapports, etc. Les Macros prennent en charge la logique de base (IF-conditions) et la possibilité d’appeler d’autres macros. Les Macros peuvent également contenir des sous-macros qui sont similaires aux sous-programmes. Dans Access 2007, les macros améliorées comprenaient la gestion des erreurs et la prise en charge des variables temporaires. Access 2007 a également introduit des macros intégrées qui sont essentiellement des propriétés de l’événement d’un objet. Cela a éliminé la nécessité de stocker des macros en tant qu’objets individuels., Cependant, les macros étaient limitées dans leur fonctionnalité par un manque de boucles de programmation et de logique de codage avancée jusqu’à Access 2013. Avec d’importantes améliorations introduites dans Access 2013, les capacités des macros sont devenues entièrement comparables à celles de VBA. Ils ont rendu les déploiements d’applications Web riches en fonctionnalités pratiques, via une interface et des outils Microsoft SharePoint grandement améliorés, ainsi que sur les ordinateurs de bureau Windows traditionnels.
en commun avec d’autres produits de la suite Microsoft Office, L’autre langage de programmation utilisé dans Access est Microsoft VBA. Il est similaire à Visual Basic 6.,0 (VB6) et le code peuvent être stockés dans des modules, des classes et du code derrière des formulaires et des rapports. Pour créer un produit fini plus riche, plus efficace et maintenable avec une bonne gestion des erreurs, la plupart des applications d’accès professionnel sont développées en utilisant le langage de programmation VBA plutôt que des macros, sauf lorsque le déploiement web est une exigence métier.,
pour manipuler des données dans des tables et des requêtes dans VBA ou des macros, Microsoft fournit deux bibliothèques d’accès à la base de données de composants COM:
- Data Access Objects (DAO) (32 bits uniquement), qui est inclus dans Access et Windows et a évolué vers ACE dans Microsoft Access 2007 pour le format de base DAO et ado, les développeurs peuvent également utiliser OLE DB et odbc pour développer des programmes C/C++ natifs pour l’accès. Pour les ADP et la manipulation directe des données SQL Server, ADO est requis., DAO est le plus approprié pour gérer les données dans les bases de données Access/Jet, et le seul moyen de manipuler les types de champs complexes dans les tables ACCDB.
dans le conteneur de base de données ou le volet de navigation D’Access 2007 et des versions ultérieures, le système catégorise automatiquement chaque objet par type (par exemple, table, requête, macro). De nombreux développeurs D’Access utilisent la convention de nommage Leszynski, bien que ce ne soit pas universel; il s’agit d’une convention de programmation, pas d’une règle imposée par le SGBD. Il est particulièrement utile dans VBA où les références aux noms d’objets peuvent ne pas indiquer son type de données (par exemple, tbl pour les tables, qry pour les requêtes).,
Les développeurs déploient Microsoft Access le plus souvent pour des projets individuels et de groupe de travail (la caractérisation de la vitesse Access 97 a été effectuée pour 32 utilisateurs). Depuis Access 97, et avec Access 2003 et 2007, Microsoft Access et le matériel ont considérablement évolué. Les bases de données de moins de 1 Go (qui peuvent maintenant tenir entièrement dans la RAM) et 200 utilisateurs simultanés sont bien dans les capacités de Microsoft Access. Bien sûr, les performances dépendent de la conception et des tâches de la base de données. Le travail exigeant sur le disque, comme la recherche et l’interrogation complexes, prend le plus de temps.,
comme les données d’une base de données Microsoft Access peuvent être mises en cache dans la RAM, la vitesse de traitement peut s’améliorer considérablement lorsqu’il n’y a qu’un seul utilisateur ou si les données ne changent pas. Dans le passé, l’effet de la latence des paquets sur le système de verrouillage des enregistrements entraînait L’exécution lente des bases de données Access sur un réseau privé virtuel (VPN) ou un réseau étendu (WAN) contre une base de données Jet. Depuis 2010, les connexions à large bande ont atténué ce problème., Les performances peuvent également être améliorées si une connexion continue est maintenue à la base de données principale tout au long de la session plutôt que de l’ouvrir et de la fermer pour chaque accès à la table. Si les performances de la base de données Access via VPN ou WAN en souffrent, un client utilisant le protocole de Bureau À Distance (tel que Microsoft Terminal Services) peut fournir une solution efficace. Les bases de données d’accès liées à SQL Server ou aux projets D’accès aux données fonctionnent bien sur les VPN et les Wan.,
en juillet 2011, Microsoft a reconnu un problème de performances de requête intermittente avec toutes les versions D’Access et Windows 7 et Windows Server 2008 R2 en raison de la nature de la gestion des ressources étant très différente dans les nouveaux systèmes d’exploitation. Ce problème affecte gravement les performances des requêtes sur Access 2003 et versions antérieures avec le code du moteur de base de données Jet, ainsi que Access 2007 et versions ultérieures avec le moteur de base de données Access (ACE). Microsoft a publié des correctifs KB2553029 pour Access 2007 et KB2553116 pour Access 2010, mais ne résoudra pas le problème avec Jet 4.0 car il n’est pas pris en charge par le grand public.,
dans les versions antérieures de Microsoft Access, la possibilité de distribuer des applications nécessitait l’achat du Developer Toolkit; dans Access 2007, 2010 et Access 2013, la version « Runtime Only » est offerte en téléchargement gratuit, rendant la distribution d’applications libres de droits possible sur Windows XP, Vista, 7 et Windows 8.x.
architecture de base de données fractionnée edit
Les applications Microsoft Access peuvent adopter une architecture de base de données fractionnée., La base de données unique peut être divisée en un fichier « back-end » séparé qui contient les tables de données (partagées sur un serveur de fichiers) et un « front-end » (contenant les objets de l’application tels que les requêtes, les formulaires, les rapports, les macros et les modules). L’application D’accès « frontal » est distribuée sur le bureau de chaque utilisateur et liée à la base de données partagée. En utilisant cette approche, chaque utilisateur dispose d’une copie de Microsoft Access (ou de la version d’exécution) installée sur son ordinateur avec sa base de données d’application. Cela réduit le trafic réseau puisque l’application n’est pas récupérée pour chaque utilisation., La base de données » frontal » peut toujours contenir des tables locales pour stocker les paramètres d’un utilisateur ou des données temporaires. Cette conception de base de données divisée permet également le développement de l’application indépendamment des données. Un inconvénient est que les utilisateurs peuvent apporter diverses modifications à leur propre copie locale de l’application, ce qui rend difficile la gestion du contrôle de version. Lorsqu’une nouvelle version est prête, la base de données frontale est remplacée sans impact sur la base de données. Microsoft Access dispose de deux utilitaires intégrés, Database Splitter et Linked table Manager, pour faciliter cette architecture.,
Les tables liées dans Access utilisent des chemins absolus plutôt que des chemins relatifs, de sorte que l’environnement de développement doit avoir le même chemin que l’environnement de production ou qu’une routine « Dynamic-linker » peut être écrite en VBA.
pour les bases de données Access très volumineuses, cela peut avoir des problèmes de performances et un backend SQL doit être envisagé dans ces circonstances. C’est moins un problème si la base de données entière peut tenir dans la RAM du PC puisque Access met en cache les données et les index.,
Migration vers SQL ServerEdit
Article principal: Upsizing (database)pour faire évoluer les applications D’accès vers des solutions d’entreprise ou web, une technique possible consiste à migrer vers Microsoft SQL Server ou une base de données de serveur équivalente. Une conception client-serveur réduit considérablement la maintenance et augmente la sécurité, la disponibilité, la stabilité et la journalisation des transactions.
Access 2000 à travers Access 2010 inclus une fonctionnalité appelée L’Assistant Upsizing qui permettait aux utilisateurs de mettre à niveau leurs bases de données vers Microsoft SQL Server, une base de données client–serveur ODBC., Cette fonctionnalité a été supprimée D’Access 2013. Une solution supplémentaire, L’assistant de Migration SQL Server pour L’accès (SSMA), continue d’être disponible en téléchargement gratuit auprès de Microsoft.
Une variété d’options de mise à niveau sont disponibles. Après la migration des données et des requêtes vers SQL Server, La base de données Access peut être liée à la base de données SQL. Cependant, certains types de données posent problème, notamment « Oui/Non ». Dans Microsoft Access, il existe trois états pour le type de données Yes/No (True/False): empty, no/false (zero) et yes/true (-1)., Le type de données SQL Server correspondant est binaire, avec seulement deux états, valeurs admissibles, zéro et 1. Quoi qu’il en soit, SQL Server reste la migration la plus simple. La récupération de données à partir de tables liées est optimisée uniquement pour les enregistrements nécessaires, mais ce scénario peut fonctionner moins efficacement que ce qui serait autrement optimal pour SQL Server. Par exemple, dans les cas où les jointures multi-tables nécessitent toujours de copier la table entière sur le réseau.,
dans les versions précédentes D’Access, y compris Access 2010, les bases de données peuvent également être converties en projets de données Access (ADP) qui sont directement liés à une base de données SQL Server. Cette fonctionnalité a été supprimée D’Access 2013. ADP prend en charge la possibilité de créer et de modifier directement des objets SQL Server tels que des tables, des vues, des procédures stockées et des contraintes SQL Server. Les vues et les procédures stockées peuvent réduire considérablement le trafic réseau pour les jointures multi-tables. SQL Server prend en charge les tables temporaires et les liens vers d’autres sources de données au-delà de la base de données SQL Server unique.,
enfin, certaines bases de données Access sont complètement remplacées par une autre technologie telle que ASP.NET ou Java une fois les données converties. Cependant, toute migration peut dicter un effort majeur car le langage Access SQL est un sur-ensemble plus puissant de SQL standard. En outre, les procédures de demande D’accès, QU’il s’agisse de VBA et de macros, sont écrites à un niveau relativement plus élevé que les alternatives actuellement disponibles qui sont à la fois robustes et complètes., Notez que le langage de macro Access, permettant un niveau d’abstraction encore plus élevé que VBA, a été considérablement amélioré dans Access 2010 et à nouveau dans Access 2013.
dans de nombreux cas, les développeurs créent des interfaces web-données directes en utilisant ASP.NET, tout en conservant les principaux processus d’automatisation métier, les fonctions administratives et de reporting qui n’ont pas besoin d’être distribuées à tout le monde dans Access for information workers à maintenir.
bien que toutes les données D’accès puissent migrer directement vers SQL Server, certaines requêtes ne peuvent pas migrer avec succès., Dans certaines situations, vous devrez peut–être traduire les fonctions VBA et les fonctions définies par l’utilisateur en fonctions / procédures T-SQL ou.NET. Les requêtes Crosstab peuvent être migrées vers SQL Server à l’aide de la commande PIVOT.