Désactiver la touche Majuscule
Comment désactiver la touche
[Majuscule]
au démarrage d’Access, grâce à la propriété AllowBypassKey ?
La propriété AllowBypassKey
interdit effectivement l’usage de la touche [Majuscule]
au démarrage. Elle peut être paramétrée en Visual Basic ; voici le code approprié, inspiré de l’aide en ligne d’Access…
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 |
' --- ' DESACTIVATION DE LA TOUCHE MAJ ' --- Sub DésactiverMaj() Dim blnAutoriserMaj As Boolean ' Si blnAutoriserMaj vaut False, ' la touche [Maj] sera désactivée. ' Si blnAutoriserMaj vaut True, ' la touche [Maj] sera activée. blnAutoriserMaj = False ModifiePropr "AllowBypassKey", dbBoolean, blnAutoriserMaj If blnAutoriserMaj Then MsgBox "La touche [Maj] est activée. Fermez la base et réouvrez-la pour tester." Else MsgBox "La touche [Maj] est désactivée. Fermez la base et réouvrez-la pour tester." End If End Sub ' --- ' PARAMETRAGE D'UNE PROPRIETE DE BASE ' --- Function ModifiePropr( _ chNomPropriété As String, _ varTypeProp As Variant, _ varValeurProp As Variant) As Integer Dim bds As DAO.Database, prp As DAO.Property Const conErreurPropNonTrouvée = 3270 Set bds = CurrentDb On Error GoTo Change_Err bds.Properties(chNomPropriété) = varValeurProp ModifiePropr = True Change_Sortie: Exit Function Change_Err: If Err = conErreurPropNonTrouvée Then ' Propriété non trouvée. Set prp = bds.CreateProperty(chNomPropriété, varTypeProp, varValeurProp) bds.Properties.Append prp Resume Next Else ' Erreur inconnue. ModifiePropr = False Resume Change_Sortie End If End Function |
Pour plus de détails sur les références, consultez cette page.
Tester
- Faites une copie de la base à traiter.
- Copiez ce code dans un module Access.
- Dans le code, définissez la valeur de
blnAutoriserMaj
selon que vous souhaitez activer ou désactiver la touche[Maj]
. - Exécutez la procédure
DésactiverMaj
. - Fermez la base et réouvrez-la en maintenant la touche
[Majuscule]
enfoncée.
Des compléments utiles
Contrairement à ce qu’on pourrait croire, la désactivation de la touche [Maj]
ne protège pas la base : elle force simplement la prise en compte des options de démarrage (définies par le menu Outils/Démarrage ou par une macro AutoExec
, ou par les deux !).
Pour le vérifier, téléchargez la base d’exemple (en annexe de l’article), et ouvrez-la en maintenant la touche [Maj]
enfoncée.
Vous obtiendrez un message « Hello world ! » lancé par une macro AutoExec
.
La fenêtre de base de données sera masquée (option définie dans Outils/Démarrage).
Par contre, rien n’empêche d’ouvrir le menu Fenêtre / Afficher et de faire apparaître la base complète.
Amine > La protection de la base est un sujet compliqué. On peut effectivement masquer des choses, mais ça ne suffit pas (si les objets sont seulement masqués, il est possible facilement de les refaire apparaître). Si tu travailles en MDB, la « sécurité utilisateur » est plus avancée.
bonjour,
merci pour l’article,
comment faire pour protéger la base (masquer tt)
Dieudonné > Pour les touches principales, le plus simple est de définir une macro
AutoKeys
avec des actions comme « Arrêt Macro » (notamment pour les touches{F1}
,{F2}
). Pour les séquences plus complexes, il faudra regarder du côté de l’événementKeyPress
des formulaires (avec la propriété « Aperçu des touches » du formulaire réglée sur Oui).Par contre, je ne sais pas si c’est une bonne idée de tout désactiver : F2, notamment, sert à modifier le contenu d’un champ…
Salut, comment faire pour désactiver les touches
Alt+F4 , F1 , F2 etc …