Personnaliser la vue Backstage d'Access 2010

logo_office_2010.gif


précédentsommairesuivant

I. Introduction

La vue Backstage d'Access 2010 reprend l'ancien menu Outils d'Access 2003 (gestion partage, options) ainsi que le menu Fichier. Access 2007 avait commencé cette centralisation de ces commandes. On retrouve, dans la vue Backstage, la gestion du fichier ("Enregistrer", "Ouvrir", "Imprimer"). La personnalisation de la vue permet de rendre vos applications plus professionnelles lors de leurs déploiements. Vous pouvez, par exemple, gérer les options de votre application depuis la vue Backstage.

Tout comme le Ruban dans Access 2007, la personnalisation se réalise par du XML. Une balise <backstage> a fait son apparition. Depuis un même fichier vous personnalisez le Ruban et la vue Backstage.


Prérequis :

Cet article est destiné aux utilisateurs avancés connaissant le XML pour le Ruban d'Access 2007 et Access en général.

Pour les néophytes : je vous invite à lire l'article de Christophe WARIN Création de rubans personnalisés sous Microsoft Access 2007

II. Présentation de la vue Backstage

La vue Backstage est disponible depuis l'onglet Fichier, qui remplace le bouton Office de la version 2007. Cette vue rassemble les commandes de gestion de fichiers et l'ensemble des commandes de l'ancien menu du bouton Office.

Cette vue est découpée en deux parties :
  • sur la partie barre de navigation, située à gauche, nous avons en première partie des commandes rapides (Ouvrir, Enregistrer, Fermer la base de données, etc.) et en seconde partie des onglets qui se situent au plus haut niveau de hiérarchisation des onglets, dans lesquels se trouvent des commandes concernant leurs fonctionnalités.
  • La partie centrale regroupe des commandes concernant l'onglet sélectionné. Cette vue peut se définir en deux colonnes et par groupes.
image3.png

III. Définir la table contenant le XML

Tout comme la version 2007, la personnalisation du Ruban et de la vue Backstage dans Access 2010 s'effectue par du code XML. Une nouvelle balise : <backstage> a fait son apparition et permet de définir le Ruban et la vue Backstage dans le même code XML.

Deux possibilités s'offrent à vous pour définir le XML de personnalisation.

III-1. Stockage du XML dans la base de données

Cette solution présente l'avantage d'avoir l'ensemble des informations directement dans la base de données. Il suffit de créer une table et de la définir en objet système, de sélectionner le ruban au démarrage de l'application et le tour est joué.

Nous allons créer une table qui accueillera le XML permettant la personnalisation du Backstage.

Créer une nouvelle table dans votre base de données :

image4.png

Trois champs composent cette table, nommez-les comme suit :

  • NumRibbon => de type NuméroAuto
  • RibbonName => de type Texte
  • RibbonXML => de type Memo

Enregistrez la table sous le nom USysRibbons. Lors de l'enregistrement il se peut que la table disparaisse du volet de navigation. Pour retrouver l'affichage de la table il faut autoriser l'affichage des objets systèmes. Effectuez un clic droit sur le titre du volet de navigation, sélectionnez Options de navigation. Dans la nouvelle fenêtre cochez Afficher les objets systèmes.

image5.png
image6.png


Il vous suffit, maintenant, d'alimenter cette table pour créer vos Rubans. Dans ce principe vous devez inclure la personnalisation de la vue Backstage dans le Ruban de démarrage. Vous pourrez ensuite appeler les autres Rubans dans les formulaires et/ou états.

III-1-1. Déclarer un Ruban au démarrage de l'application

Pour définir le Ruban au démarrage, il vous faut sélectionner dans les Options de la base de données, dans l'onglet base de données active, le Ruban à charger au démarrage.

image7.png

Chaque enregistrement de la table USysRibbons ajoute une entrée dans une liste déroulante. Cette liste est chargée au démarrage de l'application et si vous ajoutez un enregistrement dans la table ou si vous changez la sélection du Ruban, il vous faudra redémarrer la base de données.

III-2. Stockage du XML dans un fichier externe

Cette solution consiste à lire un fichier externe à la base de données et de type XML. Lors du déploiement de votre base de données vous devrez transmettre et stocker ce fichier XML pour personnaliser la vue Backstage.

Pour cela vous devez créer un nouveau fichier XML, qui contiendra l'ensemble des balises et paramètres XML pour la personnalisation de la vue Backstage.

Une fois le fichier créé, il faut le lire et charger l'ensemble du XML au démarrage de l'application. Pour cela nous allons créer une fonction qui, appelée au démarrage par une macro, permettra de personnaliser la vue et le Ruban en fonction du code du XML.

Nous allons reprendre le code du tutoriel de Christophe WARIN pour charger le contenu XML à la méthode LoadCustomUI et le placer dans un nouveau module nommé mdlLoadRuban.

 
Sélectionnez
Public Function LoadRibbon()
Dim strXML As String
Dim oFso As New FileSystemObject
Dim oFtxt As TextStream
'Charge le fichier XML en mémoire
Set oFtxt = oFso.OpenTextFile(CurrentProject.Path & _
      "\backstage.xml", ForReading)
'Récupère le contenu
strXML = oFtxt.ReadAll
'Charge le ruban personnalisé correspondant sous le nom backstage
Application.LoadCustomUI "backstage", strXML
End Function


Le fichier XML a pour nom backstage.xml et doit être placé dans le même dossier que la base de données. Il ne nous reste plus qu'à créer une macro que l'on nommera Autoexec. De par son nom, cette macro sera automatiquement lancée au démarrage de l'application. Appelez la fonction LoadRibbon() avec l'instruction ExécuterCode.

image8.png


Un article présente le nouvel éditeur de macro d'Access 2010, je vous invite à le consulter.

Cette solution ne permet pas une prise en compte automatique pour la personnalisation de la vue. Vous devez lancer une première fois votre application pour avoir la possibilité de sélectionner dans ses options le Ruban à charger au démarrage. De même que chaque modification du fichier XML nécessite un redémarrage de la base de données pour une prise en compte.

III-2-1. Déclarer un Ruban au démarrage de l'application

Pour définir le Ruban au démarrage il vous faut sélectionner dans les Options de la base de données, dans l'onglet base de données active, le Ruban à charger au démarrage.

image7.png


Chaque modification dans le fichier XML sera prise en compte au démarrage de l'application.

IV. Les onglets prédéfinis de la vue Backstage

Nom du Ruban : rubVide

Par défaut la vue Backstage dans Access 2010 ressemble à ceci :

image3.png

On retrouve la gestion du fichier de la base de données, les options et la gestion de la base de données. Nous allons maintenant rentrer dans le vif du sujet, à savoir la personnalisation de la vue Backstage.

La personnalisation se réalise par le XML et est propre à la base de données, en gros vous pouvez cacher certains onglets pour la Base N°1 et les afficher dans la base N°2. Chaque onglet prédéfini possède un idMso qui, passé dans l'attribut de la balise en question permet de gérer son affichage.

Voici les idMso correspondant aux boutons et onglets prédéfinis :

  • bouton Enregistrer => idMso="FileSave" ;
  • bouton Enregistrer l'objet Sous => idMso="SaveObjectAs" ;
  • bouton Enregistrer la base de données sous => idMso="FileSaveAsCurrentFileFormat" ;
  • bouton Ouvrir => idMso="FileOpen" ;
  • bouton Fermer la base de données => idMso="FileCloseDatabase" ;
  • onglet Informations => tab idMso="TabInfo" ;
  • onglet Ouvertures récentes => tab idMso="TabRecent" ;
  • onglet Imprimer => tab idMso="TabPrint" ;
  • onglet Partager => tab idMso="TabShare" ;
  • onglet Aide => tab idMso="TabHelp" ;
  • onglet Nouveau => tab idMso="TabNew" ;
  • bouton Options => idMso="ApplicationOptionsDialog" ;
  • bouton Quitter => idMso="FileExit" ;

Voici le code XML pour rendre invisible l'ensemble des éléments de la vue Backstage par défaut :

 
Sélectionnez
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <backstage>
         <button idMso="FileSave" visible="false"/>
         <button idMso="SaveObjectAs" visible="false"/>
         <button idMso="FileSaveAsCurrentFileFormat" visible="false"/>
         <button idMso="FileOpen" visible="false"/>
         <button idMso="FileCloseDatabase" visible="false"/>
         <tab idMso="TabInfo" visible="false"/>
         <tab idMso="TabRecent" visible="false"/>
         <tab idMso="TabNew" visible="false"/>
         <tab idMso="TabPrint" visible="false"/>
         <tab idMso="TabShare" visible="false"/>
         <tab idMso="TabHelp" visible="false"/>
         <button idMso="ApplicationOptionsDialog" visible="false"/>
         <button idMso="FileExit" visible="false"/>
    </backstage>
</customUI>

Tout comme pour le Ruban pour Office 2007 vous devez, dans l'attribut namespace, faire référence au schéma du Ruban pour Office 2010 :

 
Sélectionnez
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
	Code XML pour la personnalisation de la vue Backstage et le Ruban
</customUI>

Vous pouvez consulter le Schéma d'Office 2010 sur le site de Microsoft.

Tout au long de cet article nous opterons pour le stockage du XML des Rubans dans la table USysRibbons. Placer le code complet dans le champ RibbonXML de la table. Donnez un nom significatif afin de vous y retrouver par la suite. A chaque modification vous devrez relancer la base de données afin que l'application prenne en compte le changement. Une fois le redémarrage effectué déclarez le Ruban dans les options et relancez l'application. Vous devez avoir le même rendu que celui-ci :

image9.png

Pour inhiber la prise en compte de la personnalisation de la vue Backstage, au démarrage de l'application, maintenez la touche Shift (flèche vers le haut) pendant l'ouverture de la base de données.

IV-1. Astuce

Vous remarquerez que les bases de données ouvertes récemment sont toujours visibles, une astuce subsiste pour ne plus afficher ces liens vers les dernières bases ouvertes : dans les Options d'Access, depuis l'onglet Paramètres du client, une option est disponible dans le paragraphe Afficher, elle permet de définir le nombre de documents à afficher et si vous réglez à 0, aucun lien de base de données récemment ouvertes ne sera visible. Cette astuce présente un gros souci : elle interagit dans l'ensemble des logiciels de la suite Office 2010.

image10.png


Si vous regardez dans l'onglet Récent, une case à cocher : "Accéder rapidement à ce nombre de bases de données récentes" est disponible. Celle-ci, une fois décochée, n'affiche aucun lien dans la barre de navigation de la vue Backstage.

image11.png

Après des recherches approfondies, LedZeppII a trouvé la clé de registre permettant de modifier cette case à cocher. En combinant avec le Code de Domi2 nous allons, à l'ouverture de la base de données, décocher cette option afin de ne pas afficher les liens des dernières bases de données ouvertes.

Merci à eux pour cette astuce.

Collez ce code dans un nouveau module :

 
Sélectionnez
Function ModifBR()
On Error Resume Next
    Set WshShell = CreateObject("Wscript.Shell")
    WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\File MRU\Quick Access Display", "0", "REG_DWORD"
    Set WshShell = Nothing
End Function

Appelez cette fonction dans la macro Autoexec et le tour est joué. A l'ouverture de la base de données la clé de registre est modifiée afin de na pas afficher les liens des dernières bases ouvertes. Vous pouvez jouer sur ce code afin de modifier la clé sur ouverture/fermeture de la base de données ou sur ouverture/fermeture de la vue Backstage.

V. Autres liens

Je vous invite à consulter ces deux liens d'Arkham46, le premier concerne les nouveautés du ruban d'Office 2010 et le second est un excellent complément permettant de créer vos Rubans et vues Backstage dans Access 2010 :

- Office 2010 : les nouveautés du Ruban
- Assistant ruban pour Office

D'autres articles sur les rubans ou la fonction Callback sont disponibles pour le version 2007 et compatibles pour 2010 :

- Programmez et personnalisez le ruban de vos applications Access 2007.
- La personnalisation du ruban sous Excel 2007.
- Personnalisation du ruban: Les fonctions d'appel CallBacks.
- Comment personnaliser le Ruban de Word 2007.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2012 Morgan BILLY. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.