Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 18h06   #1
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Par défaut Ruban dans fenêtre Acces sans formulaire

Bonsoir à tous,

Je viens de m'installer Access 2007 et je dois migrer mes applications 2003 en 2007.
Mon plus gros problème, pour l'instant, c'est de refaire toutes mes barres d'outils.
Je me suis donc inspiré des tutoriels de developpez.com.
Seulement, j'ai de nombreuses questions car après toute une journée de recherche je n'ai pas trouvé de réponses.
J'espère que vous allez pouvoir m'aider.

1 :
Est-il possible de faire disparaitre le bouton du menu Office ?
J'ai trouvé qu'il existait ShowToolBar mais dans ce cas je ne peux plus avoir de ruban.
L'idée est d'avoir mon propre bouton de fermeture d'application afin de pouvoir réaliser quelques actions.
Sinon est-il possible de personnaliser ce menu avec mes propres boutons.
Tout ce que j'ai trouvé à ce sujet est que l'on peut simplement faire disparaitre les boutons par défaut.

2 :
Dans ma fenêtre Access, j'ai un ruban qui s'ouvre à l'ouverture.
A partir de ce ruban, j'ai un bouton qui ouvre un formulaire qui lui aussi a son propre ruban.
Comment faire pour, lorsque je ferme mon formulaire, je puisse revenir sur mon ruban de départ sachant que je n'aurais plus de formulaires d'ouverts ?

Voilà pour un premier jet.
Si j'arrive à avoir des solutions à ces problèmes, j'aurais déjà fait un grand pas.

Merci à tous

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 20h35   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Voici à quoi le squelette d'un fichier xml de ruban Access 2007.
Code xml :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <!-- COMMANDES INTEGREES 
         Permet de désactiver ou d'intercepter certaines commandes intégrées.
    -->
    <commands>
 
    </commands>
 
    <!-- RUBAN -->
    <ribbon>
        <!-- MENU OFFICE -->
        <officeMenu>
 
        </officeMenu>
 
        <!-- ONGLETS DU RUBAN -->
        <tabs>
 
        </tabs>
 
        <!-- ONGLETS CONTEXTUELS -->
        <contextualTabs>
 
        </contextualTabs>
    </ribbon>
</customUI>
1.
Dans la section <commands> .. </commands> tu peux désactiver des commandes intégrées du ruban Access.
On ne peut pas les masquer.
Exemple :
Code xml :
1
2
3
4
5
    <commands>
        <!-- exemple : désactiver les boutons "options Access" et "Quitter Access" -->
        <command idMso="ApplicationOptionsDialog" enabled="false" />
        <command idMso="FileExit" enabled="false" />
    </commands>
Dans la section <officeMenu> .. </officeMenu> tu modifies le menu du bouton Office.
Tu peux masquer des éléments et en ajouter.
Par contre, on ne peut pas masquer le bouton Office lui-même.
Exemple :
Code xml :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        <!-- MENU OFFICE -->
        <officeMenu>
            <!-- exemple : masquer des éléments standards du bouton Office -->
            <control idMso="ConvertDatabaseFormat" visible="false" />
            <control idMso="FileSave" visible="false" />
            <control idMso="FileSaveAsMenuAccess" visible="false" />
            <control idMso="FileManageMenu" visible="false" />
            <control idMso="FileSendAsAttachment" visible="false" />
            <control idMso="MenuPublish" visible="false" />
            <control idMso="FileCloseDatabase" visible="false" />
            <!-- exemple : ajouter des éléments non standards  -->
            <button idMso="FileCompactAndRepairDatabase" insertBeforeMso="FileCloseDatabase" />
            <menu idMso="WindowsSwitch" />
        </officeMenu>
Concernant la fermeture de l'application Access :
Comme on ne peut pas masquer le bouton Office, on ne peut pas empêcher la fermeture d'Access par double-clic sur le bouton Office.

2.
D'après mon expérience, lorsqu'un formulaire ayant son propre ruban se ferme ou perd le focus, son ruban (celui du formulaire donc) disparaît.
S'il n'y a plus aucun objet ouvert, ayant son propre ruban, c'est le ruban de l'Application qui s'affiche.
Sinon, c'est le ruban de l'objet (s'il a son propre ruban) qui a le focus qui s'affiche.

En fait les modifications (personnalisations) du ruban sont cumulatives.
Tout d'abord ce sont les modifications du ruban de l'application qui sont appliquées.
Ruban = Ruban Appli
Ensuite, celles du ruban d'un objet X (formulaire par exemple) ayant le focus.
Ruban = Ruban Appli + Ruban objet X
Lorsque l'objet X perd le focus, les modifications liées à son ruban sont retirées.
Ruban = Ruban Appli
Si le focus passe à un objet Y, les modification du ruban de Y sont appliquées.
Ruban = Ruban Appli + Ruban objet Y

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 23h02   #3
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir,

Un grand merci pour toutes ces explications et conseils.

J'ai pu réaliser en grande partie ce que je souhaitais faire en partie 1 et cela semble bien fonctionner.
Voici mon code si cela interesse quelqu'un:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
 <commands>
        <!-- exemple : désactiver les boutons "options Access" et "Quitter Access" -->
        <command idMso="ApplicationOptionsDialog" enabled="false" />
        <command idMso="FileExit" enabled="false" />
    </commands>
   <ribbon startFromScratch="true">
<officeMenu>
            <!-- exemple : masquer des éléments standards du bouton Office -->
            <control idMso="ConvertDatabaseFormat" visible="false" />
            <control idMso="FileSave" visible="false" />
            <control idMso="FileSaveAsMenuAccess" visible="false" />
           <control idMso="FileNewDatabase" visible="false" />
            <control idMso="FileManageMenu" visible="false" />
            <control idMso="FileSendAsAttachment" visible="false" />
            <control idMso="MenuPublish" visible="false" />
            <control idMso="FileCloseDatabase" visible="false" />
           <control idMso="FileOpenDatabase" visible="false" /> 
            <!-- exemple : ajouter des éléments non standards  -->
           <button id="BtnParameterSystem" label="Paramètres système" imageMso="ControlToolboxOutlook" onAction="OpenFrm"/>
           <!-- Ajoute un séparateur horizontale -->
           <button idMso="FileCompactAndRepairDatabase" insertBeforeMso="FileCloseDatabase" />
         <button id="BtnQuitDatabase" label="Quitter TDM28" imageMso="FileCloseDatabase" onAction="QuitterAccess"/>
        </officeMenu>
	<tabs>
         <tab id="TDM28" label="Tools Data Management" visible="true">
            <group id="grpGestion" label="Gestion des données">
                <button id="BtnGestion" label="Management" size="normal" onAction="OpenFrm" visible="true"/>
            </group>
            <group id="grpHelp" label="Aide de l'application">	
                 <button id="BtnAProposDe" label="À propos de..." size="normal" onAction="Aproposde" visible="true"/>
            <button id="BtnHelp" label="Aide" size="normal" imageMso="TentativeAcceptInvitation" onAction="HelpChm" visible="true"/>
			</group>
         </tab>
    </tabs>		
   </ribbon>
</customUI>
Je n'ai encore eu le temps de voir la partie 2.
Il se fait tard, alors je verrais çà demain.

Encore une fois, un grand merci.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2011, 15h05   #4
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonjour LepZeppII,

Je n'ai toujours pas essayé la partie 2 du fait que j'effectue la migration d'une petite application qui n'a plus qu'un seul ruban et un seul onglet.
Cela me permets de me faire la main en attendant de m'attaquer à une plus grosse appli qui peut se connecter indépendemment à une dizaine de dorsales.

En tout cas, je commence à m'éclater avec ce ruban.
Cela dit, j'ai encore quelques questions sur ce sujet :
3 :
A l'ouverture d'un formulaire, comment faire pour n'avoir aucun ruban et comment faire pour revenir à mon ruban précédent lorsque je ferme mon formulaire.

4 :
Concernant la balise "Command" du xml, existe t'il une liste des boutons que l'on peut activer ou non.
Mon idée est de ne plus avoir l'onglet "Documents récents" afin d'avoir mon propre onglet documents récents.
Ceci afin que l'utilisateur ne puisse se connecter qu'aux dorsales de mes applis.
Je pense m'inspirer du tutoriels de Christophe WARRIN sur la gestion des favoris.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2011, 16h17   #5
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

3.
Citation:
A l'ouverture d'un formulaire, comment faire pour n'avoir aucun ruban ?
  • Par VBA
    Comment masquer le ruban en VBA
  • Par ruban formulaire
    Tu crée un ruban vide et dans le formulaire tu sélectionnes ce ruban vide.
    L'exemple le plus simple est
    Code xml :
    1
    2
    3
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="true" />
    </customUI>
    Toutefois, ce ruban ne fonctionnera qu'à la condition que le ruban de l'application n'ait pas déjà startFromScratch="true".
    Si c'était le cas, il faudrait une ruban qui masque tout ce que le ruban de l'application affiche.
Citation:
comment faire pour revenir à mon ruban précédent lorsque je ferme mon formulaire
  • Si tu as masqué le ruban en VBA, tu le ré-affiches en VBA.
  • Si tu as masqué le ruban de l'application avec le ruban du formulaire, cela se fait tout seul (ma réponse à ta question 2).

4.
Balise command.
Je crois qu'on peut mettre presque n'importe quel idMso.
Il doit bien y avoir, cependant, des exceptions.

Masquer "Documents récents" dans le bouton Office.
Je ne sais pas le faire.
A part en décochant l'option «Autoriser les menus complets» dans les options Access (Base de données active).
C'est peut-ête une bonne option.
Je vois dans ton précédent exemple de xml que tu utilises startFromScratch="true", ça permettrait de ne pas le faire.
Tu aurai simplement (à vérifier) besoin de cacher l'onglet TabHomeAccess.
Cela te laisse la possibilité par la suite d'utiliser startFromScratch="true" dans des rubans pour formulaires.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 11h08   #6
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonjour LedZepII,

Génial, génial et encore trop génial l'affaire du ruban vide.
C'est exactement ce que je cherchais.

Concernant l'affaire des documents récents :
- en décochant « Autoriser les menus complets », on conserve l'onglet mais effectivement il n'y aucune valeur même avec startFromScratch="true". Je vais sans doute être obligé de me contenter de çà. Il y a bien quelqu'un qui nous proposera un petit code avec API pour gérer çà. J'avais pensé au régistre mais à priori Access, contrairement à Excel, Word et Power-Point, ne stocke pas ces documents récents dedans.
- c'est quoi TabHomeAccess et où l'utiliser (Command ou Qat, visible ou enabled) ?

Vraiment un grand merci pour tes conseils.
Cela m'a permit de bien progresser en quelques jours.
J'arrive maintenant à exploiter le ruban, le menu Office ainsi que le Qat.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h40   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Documents récents.
Il n'existe à ma connaissance qu'une option, mais elle est globale, c'est à dire niveau Access et non niveau base de données.
C'est l'option «Afficher ce nombre de documents récents :» dans les options d'Access (Avancé > Afficher).
Cette option est sauvée dans la base de registre pour l'utilisateur Windows en cours.

TabHomeAccess est l'idMso de l'onglet Accueil.
J'ai téléchargé un jour une liste complète, mais je ne me rappelle plus où.
Essaie avec ce lien : http://www.microsoft.com/download/en...s.aspx?id=3582

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 23h10   #8
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir LedZepII,

Merci d'avoir pris le temps, un dimanche, de me répondre.

J'ai effectivement trouvé où sont mémorisés les derniers fichiers ouverts dans le registre.
Merci aussi pour le lien. Cela me fait une bonne base de travail.

Je testerais tout cela un peu plus tard dans ma grosse appli.
Avant cela, je vais me familiariser avec ce nouvel environnement et modifier mes 4 premières petites appli afin d'avancer lentement mais surement.

Ne t'inquiètes pas, je ne serais pas sans avoir d'autres questions.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 18h35   #9
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Tu peux limiter la liste des fichiers récemment ouverts en VBA :
Code :
Application.SetOption "Size of MRU File List", 0
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 22h32   #10
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir LedZepII,

Merci du tuyau, je ne le connaissais pas celui-la.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h20.


 
 
 
 
Partenaires

Hébergement Web