GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 6 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #4898331
Bonjour.

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:
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




Fabrice
Le #4898271
Bonjour Raymond,

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:
Bonjour.

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:
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








Raymond [mvp]
Le #4898241
RE.

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:
Bonjour Raymond,

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


Fabrice
Le #4898171
Rebonjour Raymond,

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:
RE.

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:
Bonjour Raymond,

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]
Le #4898001
est-ce que tu remets bien la propriété pour supprimer l'action quand tu
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:
Rebonjour Raymond,

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


Publicité
Suivre les réponses
Poster une réponse
Anonyme