Afficher le contenu d'un menu contextuel [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
10 mars 2008
-
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
10 mars 2008
-
Bonjour,

Je recherche, depuis maintenant trop longtemps, un moyen pour afficher le menu contextuel. Je vais dans un premier temps expliquer ce que je souhaite et en dernier vous montrer le code actuel utilisé.

Je voudrai afficher le contenu de mon menu (Pièce précédente, Paramètre imprimante, Paramètre balance) et non pas les forms qui y sont attachées lors du clique sur l'un de ces sous-menu. Jusque là, rien de bien difficile. Le problème est que j'utilise un évenement du type INPUTBOX pour m'assurer que les utilisateurs ont le droit d'y accéder. Cet événement est placé dans le menu Outils.

Private Sub mOutils_Click()


   Dim Nom As String


   Nom = InputBox("Bonjour", "Tapez votre mot de passe ?")
   If Nom = "tototo" Then
      'Code manquant pour afficher le contenu du menu Outils
   End If


End Sub

Le menu Outils se présente comme cela : Le dossier parent est "Outils" et les sous menu de ce dossier sont "Pièce Précédente", "Paramètre Imprimante","Paramètre Balance".
Nom du menu Outils : mOutils
Nom de Pièce Précédente : mPP
Nom de Paramètre Imprimante : mPI
Nom de Paramètre Balance : mPB

Le but est de permettre à l'utilisateur d'accéder à ce sous menu et donc de lui permettre de cliquer sur l'un de ces sous menu pour afficher la fenêtre souhaitée. Cet utilisateur ne pourra donc pas y accéder si le mot de passe n'est pas "toto".

Je profite de mon premier post pour remercier les développeurs et le site d'exister. Je travaille sur un projet VBA depuis aujourd'hui 2 mois et ce site m'a souvent permis de me sortir de l'embrouille.

Merci d'avance.

6 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
ok pour le cadre.

un login/pass au démarrage me semble effectivement adéquat... pas besoin de se relogger toutes les n secondes/minutes

pour ce mot de passe, c'est un peu particulier de le mettre dans le click du menu principal, effectivement, c'est plus ou moins une limites de VB sur ce sujet, mais coté ergonomique, c'est discutable...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
PopupMenu mOutils
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
10 mars 2008

Merci pour cette réponse.

Malheureusement, cela ne fonctionne pas. Peut-être est-ce parce que je travaille avec une MDIForm ? toujours est-il que le menu ne s'affiche pas lorsque l'utilisateur entre le mot de passe.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
j'essaie de résumer.

tu as un menu "Outils" avec des sous elements qui ne doivent etre visibles que si l'utilisateur montre patte blanche.

pourquoi lui demander si tardivement son mot de passe, et non pas au démarrage de ta form (ou ailleurs) ca lui éviterais de le resaisir a chque click sur ton menu, et simplifierais la donne.
si l'utilisateur n'est pas autorisé, tu pourras simplement griser ou masquer les sous menus auxquels il ne peut accéder.
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
10 mars 2008

Effectivement, c'est une solution qui fonctionnerait parfaitement.


Une autre solution, c'est de bloquer l'utilisateur non pas sur le clique de "Outils" mais sur le clique de "Piece précédente" ou tout autre élément constituant le menu "Outils". Cette dernière solution fonctionne, mais n'est vraiment pas ergonomique. Ta solution est plus préférable à la mienne mais je vais te dire pourquoi je cherche a répondre à ma problématique.


L'application que je réalise est utilisé en entreprise pour connaitre le tonnage de tricot produit en temps réel. J'utilise un lecteur de code-barre et une balance pour identifier celui qui travaille et le poids de la pièce produite. A travers une base Oracle, j'enregistre ou je lie ces informations. Le lecteur de code-barre ainsi que la balance sont utilisés dans l'unique but de permettre aux utilisateurs de ne rien écrire à l'aide du clavier ou encore de ne jamais utilisé la souris.


Par contre, un autre type d'utilisateur (celui qui fait les enregistrements des OF) doit lui pouvoir accéder au menu pour consulter ou encore changer les paramètres de l'application. L'idée de ma responsable est de permettre l'accès au menu uniquement sous mot de passe. Ma première idée était donc de mettre ce controle sur le clique du menu... mais actuellement cela ne marche pas. J'ai d'autre idée bien sur pour répondre à cette problèmatique, mais la solution d'afficher "une vérification du mot de passe" sur le clique du menu est plutot sympa....


Voili voilou, j'accepterai la réponse au post dès demain quoi qu'il arrive mais...une solution au problème me plairait bien.


PS: j'ai remplacer le commentaire du code par popupmenu mOutils et cela ne provoque pas d'erreur mais cela n'affiche pas le menu.
Messages postés
4
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
10 mars 2008

J te remercie beaucoup. J'ai cherché et trouver sur le net la 1ere commande citée "popupmenu" et je me disais "bah c'est bien, mais ca marche pas". Je souhaitais soit une solution, soit une explication. Maintenant je sais que VB ne permet pas ce genre d'opération. Et ca, ca me permet de passer à autre chose l'esprit tranquille

Un grand merci à toi, et bon courage pour la suite.

PS : Solution envisagée : vérifier une première fois le mot de passe lors d'un clique sur un élément du menu et enregistrer la réussite ou non dans un fichier, pour dire à l'application de ne plus demander ce renseignement jusqu'à fermeture de l'application (environ toutes les 21h).