IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Créer un environnement (barre d'outils, menus,etc) propre mais modulable


Sujet :

Access

  1. #1
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut Créer un environnement (barre d'outils, menus,etc) propre mais modulable
    Bonjour,

    Dans une appli Access, je souhaite paramèrer le démarrage d'après l'utilisateur connecté. La manière la plus simple que j'ai trouvé (toute autre proposition est la bienvenue) est d'utiliser sendkeys pour activer ou désactiver les éléments. Cela donne quelque chose comme ceci (sur une version francophone du programme):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If currentuser <> "machin" then
    Sendkeys "%O"
    Sendkeys "%D"
    Sendkeys "%C"
    ...
    End if
    Deux problèmes:
    - Il reconnait bien le currentuser mais un fois il désactive tout (donc il fait les sendkeys), la fois suivante, il ne fait rien (mais reconnait toujours le user)
    - il semble désactiver et activer le num lock

    J'ai envisager une autre solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim i As Integer 
    For i = 1 To Application.CommandBars.Count 
        DoCmd.ShowToolbar Application.CommandBars.item(i).name, acToolbarNo 
    Next
    mais là, ca plante complètement la base de données...

    Pour faire simple:
    Quand le user "machin" rentre dans l'appli, il doit avoir accès à tout (menus, fenêtre de la BDD, shortcuts comme ALT-F11, etc...)
    Quand un autre user rentre dans l'appli, il doit juste pouvoir travailler sur les formulaires créés pour lui (plus de barres d'outils, plus de menus, pas de vue ni d'accès de la fenêtre BDD, etc.).
    La base de donnée est déjà complètement sécurisée (gestion des user et des droits) et tout fonctionne impec. de ce côté là


    Merci de vos lumières

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le sendkey, c'est vraiment pas terrible.

    La gestion des commandsbars est quand même mieux. Quel est le message d'erreur ?

  3. #3
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut Interface
    Il n'y a pas de message d'erreur... Il se plante et demande si je veux réparer la BDD... Sans plus

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    As tu essayé d'ajouter la référence Microsoft Office à ton projet ?

  5. #5
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    J'ai utilisé ce genre de solution sur une appli en access 97.

    Je gérais les users connectés selon un login form, puis executer un module en appelant des macros qui faisait apparaître la barre de menu associé au user.
    Aries No JF

    Il faut toujours viser la lune, car même en cas d'échec, on atterit dans les étoiles. (O. WILDE)

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par ariesnojf
    J'ai utilisé ce genre de solution sur une appli en access 97.

    Je gérais les users connectés selon un login form, puis executer un module en appelant des macros qui faisait apparaître la barre de menu associé au user.
    Et ?

  7. #7
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par Tofalu
    Et ?

    Faut-il que je mâche le travail ?????

    C'est une piste que je soumet ....
    Aries No JF

    Il faut toujours viser la lune, car même en cas d'échec, on atterit dans les étoiles. (O. WILDE)

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Si tu l'as déjà fait autant montrer comment.

    L'entraide c'est la vocation de ce forum non ?

  9. #9
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut environnement
    La solution du login form (je suppose qu'il s'agit d'un formulaire que tu as créé) ne me convient pas car il y a déjà le login par la sécurité Access... Par contre les macros, pourquoi pas (je les transforme en VBA par la suite), j'ai effectivement essayé par là mais:
    - Je ne vois pas comment désactiver la fenêtre de la BDD via macro
    - Tu dois désactiver les menus 1 par 1 et pour simplifier cela, tu retombes dans mon deuxième exemple de code (la boucle) qui plante mon application.
    - Autre inconvénient de la macro ou du code menu par menu: le non bilinguisme (les menus n'ont pas le même nom en français et en anglais donc double code...)

  10. #10
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Hi,

    Citation Envoyé par marabout
    - Je ne vois pas comment désactiver la fenêtre de la BDD via macro
    Dans une macro : "ExecuterCommande" puis "MasquerFenêtre" dans commande.

    Pour la gestion de la barre,
    J'ai autant de barre que de profil d'utilisateur (gestion bilinguisme). Ceux-ci sont liés selon un numéro présent dans l'utilisateur et dans le nom de la macro.
    User1 à un profil 1, la macro executé sera xxx_1_xxx.

    Ensuite, les macros "font le reste". ci joint deux images qui seront plus parlante:

    Pièce jointe 4486

    Pièce jointe 4487

    Ensuite, chaque menu selectionné fait appel à une fonction pour activer formulaire, éditer état, ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function Form_ResultatEssai()
        If User_Profil = 0 Then DoCmd.OpenForm "Form_login", , , , , A_DIALOG
        If User_Profil = 0 Then Exit Function
        DoCmd.OpenForm "Form_ResultatEssais"
    End Function
    Résultat final avec barre de menu (sans utilisateur connecté)

    Pièce jointe 4488


    Le seul soucis, créer autant de barre (donc de macro) qu'il y a de profil d'utilisateur.

    Citation Envoyé par Tofalu
    L'entraide c'est la vocation de ce forum non ?
    Eh oui, je suis d'accord avec cela, mais dans le cas de notre ami, j'essayais de lui soumettre une piste et je pensais que cette "mise en bouche suffirait" ...
    Aries No JF

    Il faut toujours viser la lune, car même en cas d'échec, on atterit dans les étoiles. (O. WILDE)

  11. #11
    Membre éclairé
    Avatar de marabout
    Homme Profil pro
    Consultant E-Learning
    Inscrit en
    Août 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant E-Learning

    Informations forums :
    Inscription : Août 2006
    Messages : 650
    Points : 852
    Points
    852
    Par défaut Environnement
    Merci Ariesnojf pour ton explication (sympa à écrire le pseudo ).

    Je vais plancher sur ce genre de solution mais j'aimerais toujours comprendre pourquoi ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer 
    For i = 1 To Application.CommandBars.Count 
        DoCmd.ShowToolbar Application.CommandBars.item(i).name, acToolbarNo 
    Next
    Plante mon application...

  12. #12
    Membre habitué Avatar de ariesnojf
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 195
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par marabout
    sympa à écrire le pseudo .
    Vive le copier coller
    Aries No JF

    Il faut toujours viser la lune, car même en cas d'échec, on atterit dans les étoiles. (O. WILDE)

Discussions similaires

  1. [LibreOffice][Texte] créer extension bouton barre d'outil
    Par chticli dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 27/10/2014, 13h16
  2. [XL-2003] Impossible de créer une nouvelle barre d'outils
    Par gerardmarquer dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/06/2013, 17h59
  3. Réponses: 22
    Dernier message: 03/08/2007, 15h57
  4. Enlever toutes les barres d'outils et autres menus...
    Par sentenza dans le forum Access
    Réponses: 9
    Dernier message: 03/04/2006, 16h19
  5. Impossible de créer la barre d'outil du Lancement Rapide
    Par Cyberman dans le forum Windows XP
    Réponses: 4
    Dernier message: 02/11/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo