<Retour Grenier>

Début de page Question

Comment désactiver la touche [Majuscule] au démarrage d'Access, grâce à la propriété AllowBypassKey ?

Pour utiliser ce qui suit, vous avez besoin de savoir taper du code Visual Basic dans un module Access, compiler du code, et exécuter du code.

 

Début de page Réponse

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 :

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

Function ModifiePropr(chNomPropriété As String, varTypeProp As Variant, varValeurProp As Variant) As Integer
	Dim bds As Database, prp As 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 tester :

 

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 !).

TéléchargerPour le vérifier, téléchargez la base d'exemple (icône ci-contre), et ouvrez-la en maintenant la touche [Maj] enfoncée.

Par contre, rien n'empêche d'ouvrir le menu Fenêtre / Afficher et de faire apparaître la base complète.