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

Sécurité Discussion :

Inhiber la touche MAJ au démarrage


Sujet :

Sécurité

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Inhiber la touche MAJ au démarrage
    Je vous voudrais copier l'exemple illustré par "Franck" dans son tutoriel pour paramétrer la propriété AllowBypassKey par le biais de Visual Basic et désactiver la touche MAJ. (http://access.developpez.com/faq/?pa...ral#noautoexec)

    Problème: je ne sais pas où copier ce code pour qu'il fonctionne au démarrage de l'application !

    Quelqu'un peut-il m'aider?

    Merci par avance.

  2. #2
    Rédacteur
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    décembre 2005
    Messages
    4 485
    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 : 4 485
    Points : 7 636
    Points
    7 636
    Par défaut
    Bonjour,

    AllowBypassKey est une option de démarrage.
    Lorsqu'on la modifie, elle prend effet à la réouverture de la base de données.

    Le code de la faq (Inhiber la touche MAJ au démarrage) peut être copié dans un module de code.
    Tu peux ensuite exécuter les sub SetBypassProperty et UnSetBypassProperty pour modifier l'option de démarrage AllowBypassKey.
    Tu peux le faire directement depuis l'éditeur Visual Basic, ou créer un formulaire avec des boutons pour appeler SetBypassProperty et UnSetBypassProperty.

    Attention : Une fois AllowBypassKey mise à True, la fonctionnalité de la touche MAJ au démarrage est désactivée.
    Si tu as tout verrouillé dans ta base, il se peut que ne puisse plus avoir le moyen d'exécuter UnSetBypassProperty.
    Fais des essais sur une base de test.

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut

    Je ne dois pas mettre les lignes de codes à la bonne place car la touche MAJ reste active:
    Où est l'erreur ??
    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
    24
    25
    26
    Option Compare Database
    Private Sub Form_OnConnect()
    Sub SetBypassProperty()
    Const DB_Boolean As Long = 1
        ChangeProperty "AllowBypassKey", DB_Boolean, False
    End Sub
    Function ChangeProperty(strPropName As String, varPropType As Long, varPropValue As Variant) As Integer
        Dim dbs As Database, prp As Variant
        Const conPropNotFoundError = 3270
        Set dbs = CurrentDb
        On Error GoTo Change_Err
        dbs.Properties(strPropName) = varPropValue
    Change_Bye:
        Exit Function
    Change_Err:
        If Err = conPropNotFoundError Then    ' Propriété non trouvée.
        Set prp = dbs.CreateProperty(strPropName, _
        varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
      ' --Erreur inconnue.
      Resume Change_Bye
    End If
    End Function
    End Sub

  4. #4
    Rédacteur
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    décembre 2005
    Messages
    4 485
    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 : 4 485
    Points : 7 636
    Points
    7 636
    Par défaut
    Bonjour,

    Apparemment tu as collé le code dans un module de code formulaire.
    Le plus simple est de le coller à la fin.

    Voici un exemple d'un formulaire à deux boutons
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Option Compare Database
    Option Explicit
     
    ' Bouton pour activer MAJ
    Private Sub CmdActiverMAJ_Click()
    ' Appel Sub UnSetBypassProperty de la faq
    UnSetBypassProperty
    End Sub
     
    ' Bouton pour desactiver MAJ
    Private Sub CmdDesactiverMAJ_Click()
    ' Appel Sub SetBypassProperty de la faq
    SetBypassProperty
    End Sub
     
    ' ---------------------------------------------------------
    ' code de la faq - DEBUT
    ' ---------------------------------------------------------
    Sub SetBypassProperty()
    Const DB_Boolean As Long = 1
        ChangeProperty "AllowBypassKey", DB_Boolean, False
    End Sub
     
    Sub UnSetBypassProperty()
    Const DB_Boolean As Long = 1
        ChangeProperty "AllowBypassKey", DB_Boolean, True
    End Sub
     
    Function ChangeProperty(strPropName As String, varPropType As Long, varPropValue As Variant) As Integer
        Dim dbs As Database, prp As Variant
        Const conPropNotFoundError = 3270
        Set dbs = CurrentDb
        On Error GoTo Change_Err
        dbs.Properties(strPropName) = varPropValue
    Change_Bye:
        Exit Function
    Change_Err:
        If Err = conPropNotFoundError Then    ' Propriété non trouvée.
        Set prp = dbs.CreateProperty(strPropName, _
        varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
      ' --Erreur inconnue.
      Resume Change_Bye
    End If
    End Function
    ' ---------------------------------------------------------
    ' code de la faq - FIN
    ' ---------------------------------------------------------
    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut RE
    Salut a vous !
    J'ai essayé le coup du formulaire a deux boutons et cela fonctionne parfaitement, du coup je voulais juste savoir si il y avait un moyen de le cacher aux utilisateurs mais qu'il soit quand meme accessible avec une manip rapide pour que je puisse réactiver la touche MAJ?

    Merci pour les précisions

    Cordialement

    TH

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    octobre 2009
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : octobre 2009
    Messages : 778
    Points : 1 246
    Points
    1 246
    Par défaut
    Bonjour,

    Tu peux utiliser les solutions suivantes :

    • à la fermeture de ton application, prévoir un message qui te demande si tu veux désactiver cette fonction (uniquement dans le cas ou elle serait active). De ce fait, l'utilisateur n'aura jamais ce message, c'est juste un choix que doit faire le concepteur ;
    • prévoir un raccourci clavier, éventuellement avec une input box pour inscrire un mot de passe, afin de pouvoir réactiver la fonction. Option à ne pas négliger, sinon, tu ne pourras plus assurer la mantenance. La solution sera alors de recréer une nouvelle base et d'importer tous tes objets ;
    • enfin, créer une macro nommée AutoExec afin qu'elle se déclenche automatiquement au démarrage de ton application. Cette macro utilise la fonction "Exécuter code" et le nom de la fonction doit être saisie comme suit : NomFonction().


    J'utilise ces principes depuis de nombreuses années et cela fonctionne très bien.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  7. #7
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par marsouin_89 Voir le message
    Bonjour,

    Tu peux utiliser les solutions suivantes :

    • à la fermeture de ton application, prévoir un message qui te demande si tu veux désactiver cette fonction (uniquement dans le cas ou elle serait active). De ce fait, l'utilisateur n'aura jamais ce message, c'est juste un choix que doit faire le concepteur ;

    • enfin, créer une macro nommée AutoExec afin qu'elle se déclenche automatiquement au démarrage de ton application. Cette macro utilise la fonction "Exécuter code" et le nom de la fonction doit être saisie comme suit : NomFonction().


    J'utilise ces principes depuis de nombreuses années et cela fonctionne très bien.
    Salut!

    Merci beaucoup pour tes conseils, cependant étant novice sur Access je vois pas bien comment la Macro AutoExec peu m'aider dans le cas présent. A part cela je serai plus tenté par la premiere solution mais pour le coup je ne vois pas comment je dois faire pour codé en VBA le message qui me demande si je veux désactiver la fonction qui désactive la touche MAJ sans qu'elle apparaisse pour les utilisateurs.. pourrais tu s'il te plait préciser en détail comment je devrais m'y prendre stp?

    Merci d'avance

    Cordialement

    TH

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    octobre 2009
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : octobre 2009
    Messages : 778
    Points : 1 246
    Points
    1 246
    Par défaut
    Bonjour,

    Ah les débuts sous Access sont toujours compliqués.
    Moi aussi, j'ai été débutant autodidacte et effectivement rien ne vaut un bon exemple tout maché pour pouvoir comprendre et progresser.

    Voici donc en pièe jointe un base exemple. Elle en format 2010, mais je crois que cela ne devrait pas te poser de problème pour l'ouvrir en 2007.

    Bon week-end.
    Fichiers attachés Fichiers attachés
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  9. #9
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut Re
    Merci de ta réponse et effectivement cela me parles beaucoup plus

    je vais du coup appliquer cela merci beaucoup

    Bonne continuation

    TH

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    juin 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : juin 2018
    Messages : 16
    Points : 24
    Points
    24
    Par défaut
    merci
    Citation Envoyé par marsouin_89 Voir le message
    Bonjour,

    Ah les débuts sous Access sont toujours compliqués.
    Moi aussi, j'ai été débutant autodidacte et effectivement rien ne vaut un bon exemple tout maché pour pouvoir comprendre et progresser.

    Voici donc en pièe jointe un base exemple. Elle en format 2010, mais je crois que cela ne devrait pas te poser de problème pour l'ouvrir en 2007.

    Bon week-end.

Discussions similaires

  1. [AC-2003] Inhiber la touche MAJ au démarrage en cliquant sur une étiquette
    Par SIGER_971 dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2009, 14h04
  2. [A-00] Je n'arrive pas à inhiber la touche MAJ [Sécurité]
    Par marietherese22 dans le forum Sécurité
    Réponses: 2
    Dernier message: 13/10/2008, 23h08
  3. Inhiber la touche MAJ au démarrage
    Par cassidy dans le forum Access
    Réponses: 8
    Dernier message: 16/06/2006, 00h40
  4. Désactiver la touche MAJ au démarrage
    Par crapouye dans le forum Access
    Réponses: 6
    Dernier message: 06/12/2005, 13h49
  5. Inhiber la touche MAJ au démarrage
    Par aminbouassida dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2005, 12h04

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