Problème avec désactivation de la touche shift
Le
Fabrice
Bonjour à tous,
Je travaille sous Access 2000 et je souhaite désactiver la touche shift au
démarrage de ma base de données. J'ai puisé le code sur l'excellent site de
Hervé Inisan. Voici le code :
Function DesactiverMaj()
Dim blnAutoriserMaj As Boolean
'La fonction IsGroup permet d'identifier le groupe du user en cours
If IsGroup(Application.CurrentUser, "Admins") = True Then
blnAutoriserMaj = True
Else
blnAutoriserMaj = False
End If
ModifiePropr "AllowBypassKey", dbBoolean, blnAutoriserMaj
End Function
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
Ca fonctionne bien, mais j'ai un petit problème et je ne sais pas si c'est
normal.
Si je garde Shift appuyé lorsque je me logue en administrateur, la touche
shift est désactivée à la deuxième tentative. Lorsque je quitte ma session
administrateur et j'ouvre tout de suite la base avec un groupe différent que
Admins en gardant la touche shift appuyée, la touche shift est également
désactivée, ce qui n'est pas génial
En fait, j'ai remarqué que la touche shift est effectivement désactivée pour
un groupe autre que Admins que lorsque je me serais logué une fois
normalement (sans garder la touche shift appuyée) avec un groupe autre que
Admins (j'espère que vous me suivez). Donc, si je fais des modifs en tant
qu'administrateur, ensuite je dois me loguer avec un groupe différent de
Admins pour que la touche shift soit à nouveau désactivée.
Est-ce normal ou existe-t-il un moyen pour que la touche shift soit vraiment
désactivée si je me logue avec un groupe autre que Admins (même si je viens
de me loguer en tant qu'administrateur en maintenant la touche shift
appuyée).
Je vous remercie d'avance si vous pouvez m'aider (en espérant que vous avez
compris mes explications fumeuses)
Cordiales salutations à tous
Fabrice
Je travaille sous Access 2000 et je souhaite désactiver la touche shift au
démarrage de ma base de données. J'ai puisé le code sur l'excellent site de
Hervé Inisan. Voici le code :
Function DesactiverMaj()
Dim blnAutoriserMaj As Boolean
'La fonction IsGroup permet d'identifier le groupe du user en cours
If IsGroup(Application.CurrentUser, "Admins") = True Then
blnAutoriserMaj = True
Else
blnAutoriserMaj = False
End If
ModifiePropr "AllowBypassKey", dbBoolean, blnAutoriserMaj
End Function
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
Ca fonctionne bien, mais j'ai un petit problème et je ne sais pas si c'est
normal.
Si je garde Shift appuyé lorsque je me logue en administrateur, la touche
shift est désactivée à la deuxième tentative. Lorsque je quitte ma session
administrateur et j'ouvre tout de suite la base avec un groupe différent que
Admins en gardant la touche shift appuyée, la touche shift est également
désactivée, ce qui n'est pas génial
En fait, j'ai remarqué que la touche shift est effectivement désactivée pour
un groupe autre que Admins que lorsque je me serais logué une fois
normalement (sans garder la touche shift appuyée) avec un groupe autre que
Admins (j'espère que vous me suivez). Donc, si je fais des modifs en tant
qu'administrateur, ensuite je dois me loguer avec un groupe différent de
Admins pour que la touche shift soit à nouveau désactivée.
Est-ce normal ou existe-t-il un moyen pour que la touche shift soit vraiment
désactivée si je me logue avec un groupe autre que Admins (même si je viens
de me loguer en tant qu'administrateur en maintenant la touche shift
appuyée).
Je vous remercie d'avance si vous pouvez m'aider (en espérant que vous avez
compris mes explications fumeuses)
Cordiales salutations à tous
Fabrice

Poser une question


tout ce qui se passe est normal, la touche shift ne sera activée que lors du
prochain lancement. Pour éviter de lancer cette prochaine fois, il faudrait
que si l'utilisateur est admins , tu poses la question par un msgbox pour
savoir s'il faut supprimer l'action. dans ce cas tu relances directement un
autre access par le shell à la sortie d'application. ( à tester car c'est
possible que ce soit ignoré)
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Fabrice" news:
Encore merci pour ton aide, car ce n'est pas la première fois que tu me
dépannes.
En espérant ne pas abuser, pourrais-tu me donner une piste pour effecuter un
SHELL.
J'espère te relire et merci encore
fabrice
"Raymond [mvp]" news:
Shell "msaccess.exe", vbMaximizedFocus
dis-nous si ça marche.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Fabrice" news:
J'ai mis le code suivant sur l'événement Close d'un formulaire qui est
toujours ouvert dans la bd :
Dim bytRep As Byte
If IsGroup(Application.CurrentUser, "Admins") = True Then
bytRep = MsgBox("Relancer", vbYesNo)
If bytRep = vbYes Then
Shell "msaccess.exe", vbMaximizedFocus
End If
End If
Le code relance effectivement Access, mais la touche shift n'est pas
réactivée. Je peux me loguer avec un autre groupe en tenant la touche shift
appuyée (elle est restée active), si j'ouvre à nouveau la bd.
J'espère que mon bout de code correspond à ce que tu voulais dire.
A+
Fabrice
"Raymond [mvp]" news:
quittes?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Fabrice" news: