Si vous utilisez MsAccess pour créer des IHM en vous basant sur des tables liées stockées dans des listes SharePoint vous avez peut être constaté que certaines limitations imposées par SharePoint sur les grandes listes posent problèmes lors de l’ajout de nouvelles données (voir fin de l’article).
Même en respectant toutes les préconisations de Microsoft concernant la gestion des grandes listes SharePoint, il est possible que les problèmes persistent depuis Microsoft Access. Dans ce cas, une nouvelle approche peut être envisagée : celle que je vous présente ici
Si votre projet (usage) vous permet de limiter le nombre de lignes retournées par SharePoint à MsAccess, alors vous pouvez ajouter une nouvelle liaison dans MsAccess qui pointera sur votre liste SharePoint mais en filtrant cette liste en se basant sur une vue SharePoint que vous aurez créé spécifiquement coté SharePoint.
Il est ainsi possible d’avoir dans MsAccess plusieurs liaisons vers une même liste SharePoint :
Exemple: Vous gérez des centaines de milliers de factures au format PDF dans une liste SharePoint et votre projet MsAccess doit pouvoir générer des PDF depuis un Etat et les ajouter dans la liste. Or si la liste atteint les limites de SharePoint cela peut ne plus fonctionner (ajout impossible).
En réduisant artificiellement la longueur de la liste retournée par SharePoint vers MsAccess grâce à une vue SharePoint, vous devriez pouvoir vous affranchir de cette limite en filtrant votre vue par exemple sur les factures des x derniers mois. Ainsi au lieu de récupérer dans votre table liée MsAccess toutes les lignes vous n’en aurez qu’un sous-ensemble et l’ajout de nouvelles lignes fonctionnera.
La méthode la plus simple pour ajouter une table liée provenant d’une liste SharePoint et, point capital, se basant sur une vue spécifique de cette liste, se fera en code VBA.
Sub LienVersFactureFiltrée12mois()
' Ajoute dans MsAccess une table liée qui sera nommée FacturesDerniers12Mois
' Cette Table liée prendra ses données au sein du sous-site SharePoint https://XYZT.sharepoint.com/sites/Wss2
' Puis utilisera la liste dont le GUID est ECCA5FC1-3EBE-4CEE-976A-B2B81662F9AA
' Puis utilisera la vue de cette liste dont le GUID est 9092F616-4515-4335-8760-70FC02D6CABC
DoCmd.TransferSharePointList acLinkSharePointList, _
"https://XYZT.sharepoint.com/sites/Wss2/_layouts/viewlsts.aspx", _
"{ECCA5FC1-3EBE-ABCD-976A-B2B81662F9AA}", "{9092F616-ABCD-4335-8760-70FC02D6CABC}", _
"FacturesDerniers12Mois"
End Sub
Il est bon de savoir que si votre URL, vos GUID sont corrects et que le code s’exécute sans erreur mais que, pour autant, vous ne voyez votre table liée apparaitre dans MsAccess c’est probablement que votre URL n’est pas correcte. En effet vous devez impérativement ajouter à la fin de votre URL /_layouts/viewlsts.aspx
Méthode DoCmd.TransferSharePointList (Access) | Microsoft Learn
Contactez nous pour plus d’informations au 02 51 831 839 ou via notre formulaire de contact
La toute dernière menace WannaCry, un ransomware très virulent, a été lancée à travers le monde le 12 mai dernier. Avec plus de 300000 ordinateurs frappés dans plus de 150 pays, l’impact mondial du malware en fait un exemple largement relayé par de nombreux média. Voici quelques mesures à mettre en place pour protéger vos machines […]
Lire la suiteDepuis 2021, Skype for Business Online n’est plus d’actualité ! Après avoir lancé Microsoft Teams en novembre 2016, et fort de sa popularité croissante auprès des entreprises, le géant américain a annoncé vouloir en finir avec ce produit. Microsoft Teams est donc la seule et unique plateforme de communication unifiée pour l’environnement Office 365. Désormais disponible […]
Lire la suiteEn réponse aux préoccupations soulevées par la Commission européenne, Microsoft annonce qu'à partir du 1er octobre 2023, les licences Office 365 E1, Office 365 E3, Office 365 E5, Microsoft 365 E3 et Microsoft 365 E5 incluant Teams ne seront plus disponibles pour les nouveaux abonnements. Ces changements n'auront pas d'impact sur les abonnements que vous avez déjà souscrit.
Lire la suite