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.
- 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.
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 :
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.
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.
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.
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.
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.
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 :
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 :
<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 :
<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 :
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.
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.
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 :
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.