Microsoft Office

Intégration de bases de données Access avec SharePoint

Peter Serzo

 

Vue d'ensemble:

  • Avantages de l'intégration Access et SharePoint
  • Migration de données Access vers SharePoint
  • Extension des fonctionnalités Access avec SharePoint

Lorsque je parle aux utilisateurs finaux de Microsoft Office SharePoint Server (MOSS), je leur demande toujours de me montrer les outils qu'ils utilisent et comment ils les utilisent. Et bien sûr, il y a toujours

dans l'entreprise quelqu'un qui utilise Microsoft® Office AccessTM pour répondre aux besoins fondamentaux de l'entreprise. Access demeure un outil viable et un atout important chez beaucoup d'entreprises.

MOSS 2007 propose un moyen d'exploiter des applications créées sur Access et de les intégrer à SharePoint® afin de créer une solution nouvelle et de portée plus globale. Le principal objectif de cet article est de vous montrer comment et où MOSS s'intègre à Access et comment l'utilisateur final peut configurer ces deux produits pour créer une solution.

La technologie sous-jacente que MOSS apporte à Access inclut un flux de travail, un référentiel commun (SQL Server®) et une interface basée sur le Web (le navigateur). Les fonctionnalités de SharePoint incluent la gestion de documents, les mémoires de travail et la capacité à dresser des listes personnalisées et utiliser des flux de travail intégrés et composants WebPart prêts à l'emploi qui couvrent tout, depuis l'annonce des événements à la création d'une liste de contacts ou d'une liste de problèmes, en passant par la gestion de formulaires créés par les utilisateurs. En outre, sa simplicité d'utilisation et ses technologies Office familières aideront l'utilisateur final à travailler avec confiance. Comme vous le verrez, MOSS ne représente pas une menace pour les solutions actuellement en place. MOSS vous permet plutôt d'être plus rentable puisque vous n'avez plus à réécrire des applications, ce qui aide les utilisateurs finaux à se concentrer sur la résolution des problèmes métier et non pas techniques de l'entreprise.

Ce n'est pas uniquement l'utilisateur final qui en profite. Les services et administrateurs informatiques ont souvent des difficultés à aider leurs utilisateurs finaux à maintenir toutes les bases de données personnalisées qui bourgeonnent partout dans l'entreprise. Beaucoup ne savent même pas qu'Access est utilisé pour répondre à des besoins critiques de l'entreprise avant d'être confrontés à des problèmes tels que les limites de stockage, l'accès multiutilisateurs, la sécurité, la réparation de bases de données endommagées, l'utilisation d'Internet, les versions Access non compatibles et le déploiement de modifications sur plusieurs bureaux. SharePoint a une réponse pour chacun de ces problèmes.

Malgré ses limites, Access est un outil puissant et convivial, surtout pour ceux qui ne sont pas habitués à écrire du code. Vous disposez, à un seul endroit, de tables relationnelles configurables, de requêtes simples (et complexes), d'un créateur de formulaires frontal de type glisser-déplacer, de rapports basés sur les données et de la possibilité de configurer plusieurs utilisateurs. La création de solutions basées sur Access et SharePoint peut être très utile à la fois pour les organisations souhaitant regrouper les ressources et les compétences et pour les personnes qui veulent profiter des applications et compétences qui ont été développées sur plusieurs années.

Mise en route

Access 2007 propose plusieurs points d'intégration à MOSS 2007. Comme le montre la figure 1, ces points incluent : l'importation de données d'une liste SharePoint, la publication de données sur un site SharePoint, la création d'une liste SharePoint, l'utilisation de données SharePoint comme source externe, la migration d'une base de données Access vers un site SharePoint nouveau ou existant et l'accès hors ligne aux données SharePoint.

Figure 1 Access 2007 offre des points d'entrée qui facilitent l'intégration à SharePoint

Figure 1** Access 2007 offre des points d'entrée qui facilitent l'intégration à SharePoint **(Cliquer sur l'image pour l'agrandir)

Il est conseillé de commencer par la création d'une liste SharePoint dans une table Access. Une liste SharePoint ressemble beaucoup à une table créée dans Access. Elle est enregistrée dans la base de données de contenu SQL Server, contient certains attributs de champ et prend en charge les recherches.

Les restrictions à retenir lorsque vous créez une liste SharePoint sont : Microsoft recommande une limite de 2 000 éléments par affichage pour obtenir des performances optimales. SharePoint n'impose pas l'intégrité référentielle. Les objets OLE ne sont pas exportés dans SharePoint. La validation de données est limitée.

Pour créer une liste SharePoint dans une table Access, sélectionnez tout d'abord l'onglet Données externes puis cliquez sur le bouton de Liste SharePoint activé sous le groupe Exporter. À présent, vous devez spécifier le site SharePoint dans lequel cette liste sera active en remplissant la boîte de dialogue Exporter - Site SharePoint illustré à la figure 2 ou en cliquant avec le bouton droit sur votre table et en choisissant Exporter les données vers la liste SharePoint. Notez que si la table est un enfant dans une relation, toutes les tables parent seront également exportées.

Figure 2 Les données Access seront exportées dans le site SharePoint que vous spécifiez

Figure 2** Les données Access seront exportées dans le site SharePoint que vous spécifiez **(Cliquer sur l'image pour l'agrandir)

Une fois le processus d'exportation terminé, vous avez la possibilité d'enregistrer les étapes d'exportation afin que vous n'ayez pas à les reprendre. À ce point, vous pouvez vous rendre au site SharePoint et voir les données qui ont été téléchargées. Cette simple opération est utile lorsqu'il s'agit de transférer des données dans SharePoint et de les mettre à la disposition des utilisateurs. Les avantages qu'elle offre sont le renforcement de la sécurité car les données sont désormais enregistrées dans une base de données SQL Server et un accès plus facile car les informations sont disponibles via le navigateur.

Toutefois, une autre opération, celle qui consiste à lier des listes dans SharePoint en tant que tables dans Access, s'avère plus efficace pour intégrer Access à SharePoint. Pour effectuer cette opération, cliquez sur l'onglet Données externes dans Access et choisissez Liste SharePoint sous le groupe Importer. Vous affichez ainsi la boîte de dialogue illustrée à la figure 3.

Figure 3 Liaison d'Access à SharePoint

Figure 3** Liaison d'Access à SharePoint **(Cliquer sur l'image pour l'agrandir)

Choisissez le site qui renferme la liste SharePoint qui sera utilisée comme source de données liée puis sélectionnez la liste que vous voulez lier. Une fois cette opération terminée, la liste sera affichée sous forme de table liée dans Access, et dans le coin inférieur droit de l'application, vous verrez un indicateur « Listes SharePoint en ligne ». Il existe, à présent, une synchronisation bidirectionnelle entre Access et SharePoint qui prend en charge les opérations d'ajout, de modification et de suppression de SharePoint ou d'Access. Comme vous le verrez, il est possible d'écrire du code par rapport à la table pour fournir des fonctionnalités supplémentaires.

Lorsque vous créez des liens aux listes SharePoint dans Access, vous verrez qu'une autre table, la liste d'informations utilisateurs Windows® SharePoint Services (WSS), est également importée et liée par défaut. En outre, une table des problèmes appelée « Problèmes lors du déplacement vers le site SharePoint » est créée. Vous pouvez y passer en revue tous les conflits de données.

Pour plus d'informations sur la migration de données et sur le traitement des types de données durant la conversion, voir « Conversion de types de données Access et SharePoint » (office.microsoft.com/en-us/access/HP010477131033.aspx) et la section appelée Restrictions de la migration dans « Déplacer les tables d'une base de données Access à un site SharePoint et le lier entre elles » (office.microsoft.com/en-us/access/HA101314681033.aspx).

Il existe une troisième façon d'intégrer des tables et des listes via SharePoint. Choisissez une liste et, sous l'onglet Actions, cliquez sur le « Ouvrir avec Access ». Une boîte de dialogue vous demande le nom de la base de données (nouvelle ou existante). Après avoir entré le nom de la base de données, choisissez la simple liaison aux données sur le site SharePoint ou l'exportation des données directement dans Access (voir figure 4).

Figure 4 Rendre les données SharePoint accessibles via Access

Figure 4** Rendre les données SharePoint accessibles via Access **(Cliquer sur l'image pour l'agrandir)

Transfert d'une base de données vers SharePoint

Jusqu'ici, nous avons vu l'importation d'une liste SharePoint sous forme de table liée et l'exportation de tables vers SharePoint sous forme de listes, mais qu'en est-il si vous avez besoin d'accéder à la base de données toute entière ? Beaucoup d'organisations possèdent des applications stratégiques qui s'exécutent dans Access et qui doivent être disponibles à distance afin que les utilisateurs puissent exécuter des rapports et des requêtes et entrer des données. Dans de telles situations, il n'est pas toujours possible, financièrement ou du point de vue des compétences disponibles, de réécrire l'application. SharePoint et Access résolvent ce problème grâce à l'option « Déplacer vers le site SharePoint » se trouvant sous l'onglet Accéder aux listes SharePoint. Cette option est identique à l'option servant à passer à SQL Server en utilisant l'Assistant de migration qui est apparu pour la première fois dans Access 97.

Le transfert d'une base de données Access toute entière vers SharePoint offre les avantages suivants : toutes les tables sont converties en listes SharePoint, une sauvegarde de la base de données Access est effectuée, les listes deviennent automatiquement des tables liées dans Access, vous pouvez déplacer la base de données toute entière et non pas uniquement les tables et la base de données fonctionne pratiquement de la même manière qu'avant le transfert.

Lorsque vous cliquez sur le bouton Déplacer vers le site SharePoint, la boîte de dialogue de la figure 5 s'affiche. Après avoir spécifié le site, vous devez décider si vous voulez enregistrer la base de données. Si vous choisissez de le faire, la base de données toute entière sera enregistrée dans une bibliothèque de documents sélectionnée. Cela signifie que la base de données entière (y compris les formulaires, les rapports, les requêtes et les macros) est enregistrée dans SharePoint et est ainsi disponible sur le serveur. Lorsqu'un utilisateur veut accéder à la base de données, il se rend tout simplement à la bibliothèque dans laquelle elle se trouve et clique dessus pour la déployer automatiquement vers son bureau.

Figure 5 Spécifiez le site SharePoint sur lequel vous voulez déplacer votre base de données

Figure 5** Spécifiez le site SharePoint sur lequel vous voulez déplacer votre base de données **(Cliquer sur l'image pour l'agrandir)

Lorsque vous choisissez de déplacer la base de données toute entière, un message vous demandant si vous souhaitez publier les changements s'affiche sous le ruban. Cette option vous permet de synchroniser les modifications locales apportées à la conception et aux données avec la copie du serveur. Si vous ne sélectionnez pas cette option, seules les tables seront transformées en listes et reliées à Access. Dans ce cas, la base de données toute entière n'est pas disponible à la communauté d'utilisateurs et n'est pas sauvegardée en tant qu'objet dans SharePoint.

Après avoir sélectionné une option, la base de données et les informations qui lui sont associées seront disponibles par le biais du site SharePoint vous avez choisi. Là aussi, une table des problèmes transférés au site SharePoint est créée. C'est là que tous les conflits provoqués par la migration sont décrits. Vous pouvez examiner n'importe quel problème qu'Access a rencontré en téléchargeant la table sur le site SharePoint.

Affichages, formulaires et rapports

Une fois la base de données déplacée, vous voudrez tester ses fonctionnalités. Assurez-vous que vous voyez l'indicateur « Listes SharePoint en ligne » avant de commencer. Notez que les requêtes Access deviennent des affichages SharePoint. Une vue SharePoint est très similaire à une requête Access.

Lorsque vous déplacez la base de données toute entière, les requêtes existantes sont copiées dans SharePoint en tant qu'affichages. Les utilisateurs d'Access savent qu'en écrivant des requêtes, ils peuvent voir un sous-ensemble des données. En apprenant à faire la même chose dans un affichage SharePoint, vous comprenez comment les données sont organisées dans une liste SharePoint.

L'un des affichages les plus utiles que vous puissiez créer est un affichage Access. Pour ce faire, allez à la liste sous laquelle vous souhaitez créer la vue et choisissez Affichages puis Créer un affichage Vous verrez alors l'option d'accès à l'affichage qui vous permet de créer des formulaires et des rapports basés sur une liste. Lorsque vous cliquez sur cette option et choisissez la base de données Access, une boîte de dialogue identique à celle de la figure 6 s'affiche. Comme vous le voyez, vous définissez à présent le format (type de formulaire, PivotChart, PivotTable ou rapport), et une fois le processus terminé, il y aura un formulaire ou un rapport lié dans la base de données Access.

Figure 6 Création d'un affichage Access

Figure 6** Création d'un affichage Access **(Cliquer sur l'image pour l'agrandir)

Accès hors ligne

En réalité, l'extension d'une application d'importance stratégique se traduit par un retour sur investissement. Une manière d'étendre la portée d'une application Access/SharePoint intégrée est de comprendre que vous n'avez pas à être connecté à SharePoint pour l'utiliser. C'est dans cette optique qu'Access 2007 a introduit la possibilité de travailler hors ligne. Les informations sont mises en cache dans la copie locale de la base de données jusqu'à ce qu'elles puissent être jointes au serveur. Pour mettre une base de données hors ligne, cliquez sur le bouton Travailler hors connexion, sur Données externes|Listes SharePoint, sur le ruban.

Lorsque vous êtes prêt à vous reconnecter à SharePoint, vous pouvez choisir de travailler en ligne ou de synchroniser. Ces options permettent toutes deux de télécharger les données et de présenter les conflits à examiner. Avec l'option Synchroniser, cependant, les données sont téléchargées mais l'application reste hors ligne.

Un autre élément à retenir dans le groupe Listes SharePoint est la fonction Ignorer les modifications qui comporte deux options. La première ignore toutes les modifications mais ne met pas à jour les données SharePoint dans Access. La deuxième ignore toutes les modifications et met à jour les données SharePoint (les listes liées).

Modèles Access

Access 2007 comporte plusieurs modèles préfabriqués qui aident les utilisateurs à créer des solutions d'entreprise rapidement, comme vous pouvez le voir en cliquant sur le bouton Listes SharePoint sous l'onglet Créer, dans le groupe Tables (voir figure 7). En choisissant l'un de ces modèles, vous définissez automatiquement le schéma d'une table liée à SharePoint. Actuellement, seuls Contacts, Tâches, Problèmes et Événements sont pris en charge. Cela signifie que si vous exportez une table qui contient l'un de ces types d'informations, les données se transformeront en type de contenu WSS correspondant.

Figure 7 Choix du type de liste

Figure 7** Choix du type de liste **

Vous pouvez également créer des modèles personnalisés qui peuvent être utilisés pour les listes SharePoint ou créer des modèles de site SharePoint avec des bases de données Access 2007 à liaison automatique. Pour ce faire, vous devez avoir les extensions Access 2007 Developer Extensions et définir le WSSTemplateID de la table. Cette propriété suit les tables dotées d'un équivalent de modèle de liste SharePoint.

Access et les métadonnées

Les entreprises habituées depuis longtemps aux applications Access ne seront pas toujours disposées à les déplacer vers SharePoint. Dans ce cas, il est parfois pratique d'écrire du code dans Access pour mettre à jour SharePoint. Avec le code, vous pouvez coller SharePoint et Access ensemble.

En guise d'exemple, nous citerons le cas de la base de données de Northwind Trader qui stocke les informations sur les produits, les fournisseurs et les commandes de clients. À chaque produit est généralement associée une feuille de produit livrée par le fournisseur sous forme de fichier .pdf. La base de données Access effectue le suivi de toutes les informations contenues sur la feuille de produit, notamment l'emplacement géographique, le numéro de produit, l'historique des révisions et le code de service de l'entreprise. Ces informations doivent être mises à la disposition des fournisseurs via l'extranet de SharePoint.

Un site SharePoint est créé et tous les documents sont transférés vers une bibliothèque de documents liée, mais les champs de métadonnées sont vides (voir figure 8) parce que les données sont suivies dans Access (et la personne qui effectue cette opération est bien habituée à Access et n'est pas disposée à changer).

Figure 8 Document Northwind affiché dans SharePoint, avec les métadonnées qui manquent

Figure 8** Document Northwind affiché dans SharePoint, avec les métadonnées qui manquent **(Cliquer sur l'image pour l'agrandir)

Fort heureusement, comme le montre la figure 9, vous pouvez ajouter du code Visual Basic® for Applications (VBA) pour mettre à jour les métadonnées via l'application Access. L'application n'a pas à être réécrite. L'employé peut continuer à utiliser un outil avec lequel il se sent à l'aise tout en se consacrant au Web et les fournisseurs peuvent accéder à l'extranet en fonction de leurs autorisations (ils ne voient que ce qu'ils sont autorisés à voir). Pas de problèmes de simultanéité ou de taille de bases de données.

Figure 9 Mise à jour de métadonnées avec le code

Figure 9** Mise à jour de métadonnées avec le code **(Cliquer sur l'image pour l'agrandir)

Sécurité intégrée

L'un des plus grands avantages que confère le transfert des applications Access à SharePoint est la possibilité d'utiliser le modèle de sécurité de SharePoint auquel est intégrée une authentification Active Directory®. Cela signifie que vous n'avez plus à implémenter la sécurité dans les applications Access en créant des schémas et tables puis en ajoutant des utilisateurs. Avec les listes SharePoint, vous pouvez utiliser des restrictions de sécurité par lesquelles les utilisateurs voient seulement ce qu'ils sont autorisés à voir. Cette option est intégrée dès le départ à SharePoint. En outre, s'il existe des composants de la base de données que vous ne voulez pas mettre dans SharePoint, vous n'avez pas à les déplacer.

SharePoint propose un modèle de sécurité granuleux et basé sur les rôles. Lorsque vous déterminez comment et où déplacer une base de données, vous devriez concevoir le site et la sécurité avant la migration. Il sera alors plus facile de définir et tester des autorisations. En outre, il y aura moins de problèmes de migration et la base de données Access fonctionnera plus efficacement.

Intégrité référentielle

Je ne terminerai pas sans au moins mentionner le sujet de l'intégrité référentielle. Le fait est que SharePoint n'applique pas l'intégrité référentielle comme le fait Access. Beaucoup d'installations sont normalisées à un certain niveau. Ceci doit être pris en compte pour que ces bases de données Access d'importance stratégique fonctionnent. Fort heureusement, il y a quelques solutions de contournement qui peuvent être considérées comme des améliorations du système existant.

Auparavant, je vous avais expliqué que lorsque vous transférez une base de données à SharePoint et que vous y déplacez des tables enfant, vous serez également obligé de déplacer les tables parent. De plus, les champs de recherche sont utilisés lorsque SharePoint reconnaît que le choix d'un champ est basé sur une autre table. Par exemple, supposons qu'un client ait été choisi et qu'une commande ait été placée dans la base de données de Northwind Traders. Si ces tables étaient transférées vers SharePoint, le champ du client serait une recherche dans la liste Commande.

Et qu'en est-il des mises à jour/suppressions en cascade et d'autres opérations plus compliquées ? C'est là que SharePoint et ses flux de travail devraient être considérés comme solution potentielle. Revenons à la base de données de Northwind Traders et supposons qu'un client appelle et annule une commande existante, ce qui déclenche alors plusieurs actions : l'inventaire doit être suspendu, les fournisseurs doivent être avertis, l'employé attaché à la commande doit rester en contact avec le client, l'expédition doit être annulée et les comptes doivent être mis à jour. Tout cela représente beaucoup de choses à déplacer et à coordonner.

Avec SharePoint Designer, il est possible de créer un flux de travail dans SharePoint qui effectue toutes les tâches mentionnées ci-dessus dès que l'état de la commande est modifié. Il existe 22 flux de travail prêts à l'emploi qui peuvent être utilisés ensemble pour effectuer des centaines d'opérations. SharePoint Designer est l'outil qu'il vous faut pour personnaliser votre site et créer des flux de travail.

En outre, l'utilisation de SharePoint Designer pour créer des flux de travail nécessite des compétences qui sont familières à tous ceux qui savent déjà « programmer » dans Access. Cela signifie que les utilisateurs qui créent des applications Access peuvent utiliser et améliorer ces compétences et créer des flux de travail sans trop d'efforts. Aucune écriture de code n'est nécessaire lorsque vous utilisez SharePoint Designer pour les flux de travail dont le déploiement est, d'ailleurs, très simple.

Peter Serzo est ingénieur sénior chez CDW Berbee. Il conçoit des solutions SharePoint pour des entreprises du monde entier.

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.