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 :

interdire click droit sur tous les formulaires


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut interdire click droit sur tous les formulaires
    Bonjour,

    A part fichier/options et décocher autoriser les menus contextuels qui n'est pas très pratique car je suis obligé de la recocher à chaque fois que je fais une modif
    Et pire encore si je mets non dans le menu contextuel des formulaire ( j'en ai une cinquantaine)
    Lors de l'ouverture de la base, j'ai a un formulaire d'identification qui une fois que le user et mdp sont rentrés , un autre formulaire s'ouvre avec des droits restreints ( masquage volet et ruban) pour certains users et qui fonctionne sur tous les formulaires.
    L'idée est donc de faire pareil pour le click droit.
    La je n'ai réussi qu'à interdire le click droit au formulaire menu
    Quelqu'un a une solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     DoCmd.RunCommand acCmdWindowHide
     DoCmd.ShowToolbar "Ribbon", acToolbarNo 
     Forms![menu].ShortcutMenu = False
    Merci par avance

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    C'est dans dans les options Access :

    Base de données active

    Autoriser les menus contextuels par défaut : Décocher

    Nom : menus_contextuels.png
Affichages : 81
Taille : 41,5 Ko

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci user mais noté en 1ere ligne je ne souhaite pas cette méthode

    une autre idée ?

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Une piste peut-être ici.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    autant pour moi,

    Je ne comprends pas trop ces boucles imbriquées dans le code,

    Pourquoi pas simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function doRightClick(Optional active As Boolean = False)
        Dim obj As Object
     
        For Each obj In DBEngine.Workspaces(0).Databases(0).Containers("Forms").Documents
            DoCmd.OpenForm obj.Name, acHidden
            Forms(obj.Name).ShortcutMenu = active
            DoCmd.Close acForm, obj.Name, acSaveYes
        Next
    End Function
    Ou plus simplement encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function doRightClick(Optional active As Boolean = False)
        Dim obj As Object
     
        For Each obj In CurrentProject.AllForms
            DoCmd.OpenForm obj.Name, acHidden
            Forms(obj.Name).ShortcutMenu = active
            DoCmd.Close acForm, obj.Name, acSaveYes
        Next
    End Function
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour les vos réponses très constructives

    les 3 codes fonctionnent bien ce qui a permis de mettre non dans les menus contextuels de tous les formulaires en quelques lignes
    Super si tu as oublié de le faire à la fin, par contre le click droit est interdit pour tout le monde puisque la propriété a été changé dans le formulaire
    Moi je souhaiterais interdire le click droit uniquement à certains utilisateurs et sur tous les formulaires genre une ligne :-) comme l'interdiction du Ruban et du volet de navigation ci dessous et qui fonctionne vraiment très bien sur tous les formulaires dès que l'utilisateur concerné se logue.
    Je n'ai donc par trouvé de ShortcutMenu pour all the Forms :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunCommand acCmdWindowHide
     DoCmd.ShowToolbar "Ribbon", acToolbarNo 
     Forms![menu].ShortcutMenu = False
    une idée ?

    j'ai également décoché l'utilisation des touches spéciales access, donc le F11 ne fonctionne plus, pas contraignant pour moi
    par contre le shit + f10 fonctionne et donne donc accès au mode création et VBA par rebondissement

    Donc top du top en sécurité serait également d'interdire le shift ,Alt, click droit comme le code d'Argyronet mais toujours pareil que sur certains utilisateurs quand ils se loguent


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Compare Database
    Option Explicit
     
    Private Sub cmdAllowByPassKey_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Const BUTTON_LEFT = 1                                 'Gauche
    Const BUTTON_RIGHT = 2                                'Droit
    Const BUTTON_MIDDLE = 4                               'Central
     
    Const SHIFT_MASK = 1                                  ' MAJ.
    Const CTRL_MASK = 2                                   ' CTRL.
    Const ALT_MASK = 4                                    'ALT.
    Dim blnAllowByPassKeyValue As Boolean
     
        If Button = BUTTON_RIGHT And Shift = (SHIFT_MASK + ALT_MASK) Then
            blnAllowByPassKeyValue = (MsgBox("AllowByPassKey va changer de valeur ?" & vbCrLf & vbCrLf & "Oui pour True et Non pour False", vbYesNo, "AllowByPassKey") = vbYes)
            Call ChangeAllowByPassKey(blnAllowByPassKeyValue)
        End If
    End Sub
     
    Private Sub ChangeAllowByPassKey(ByVal ABPKValue As Boolean)
    '[...]
        MsgBox "Changé à " & IIf(ABPKValue, "True", "False")
    End Sub
    Merci à vous

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    J'imagine qu'il faut bien conserver ces droits d'accès quelque part.

    Donc, disons dans une table T_Droits :

    T_Droits
    Nom_Utilisateur : Texte
    Menus_Contextuels : Booléen (Vrai/Faux)


    Ensuite, à partie du nom d'utilisateur il faudrait aller lire dans la table T_Droits le contenu du champ Menus_Contextuels :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Function doRightClick(nom_utilisateur, Optional active As Boolean = False)
        Dim obj As Object
        Dim rst_droits As DAO.Recordset
     
        If Not active Then ' si on est en mode désactivation des menus contextuels
            Set rst_droits = CurrentDb.OpenRecordset("select Menus_Contextuels from T_Droits where Nom_Utilisateur like '" & nom_utilisateur & "'")
            active = rst_droits!Menus_Contextuels
            rst_droits.Close
            Set rst_droits = Nothing
        End If
     
        For Each obj In CurrentProject.AllForms
            DoCmd.OpenForm obj.Name, acHidden
            Forms(obj.Name).ShortcutMenu = active
            DoCmd.Close acForm, obj.Name, acSaveYes
        Next
     
    End Function
    Ensuite appeler cette fonction comme cela pour l'utilisateur "Dupond" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call doRightClick("Dupond")
    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. Modification sur tous les formulaires d'une base
    Par ver_for dans le forum IHM
    Réponses: 2
    Dernier message: 24/06/2017, 15h57
  2. Forcer un héritage de droits sur tous les sous-sites
    Par gleveque dans le forum SharePoint
    Réponses: 2
    Dernier message: 16/03/2009, 11h39
  3. Un seul submit pour règner sur tous les formulaires
    Par lexgotham dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 07/02/2009, 20h26
  4. Propagation des droits sur tous les éléments d'1 site
    Par mazu29 dans le forum SharePoint
    Réponses: 4
    Dernier message: 11/07/2008, 16h06
  5. Comment donner des droits sur tous les objets d'un schéma
    Par farenheiit dans le forum Administration
    Réponses: 2
    Dernier message: 07/06/2007, 16h27

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