Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2007, 21h08   #1
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Par défaut Désactiver touche SHIFT

Je m'efforce de mettre en oeuvre la procédure décrite par Loufab dans la FAQ mais je n'y arrive pas. J'ai une BDA avec un formulaire d'accueil , j'aimerais savoir si je dois placer cette procédure sur l'onglet événement du formulaire et sur quel événement ou bien dois-je créé une macro associée à un module. J'ai essayé les 2 mais je n'obtiens aucun résultat . D'autre part, si je veux désactiver, je dois utiliser tout ou partie de la procédure décrite et lorsque je veux réactiver, qu'est ce qu'il y a lieu de faire.Merci à, quiconque de m'éclairer.
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 10h25   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

De quel article de la FAQ parle-tu ?
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 11h42   #3
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Par défaut Désactiver touche SHIFT

Tout d'abord merci de me répondre. En fait, il s'agit de l'article : inhiber la touche MAJ dans la partie "administrer une base de données et rédiger par FRANCK. Je m'excuse pour m'être trompé d'auteur, mais je venais de terminer une lecture de LOUFAB.
Merci d'éclairer ma lanterne car je suis dans le brouillard.
Jacques-Henri
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 11h42   #4
Nouveau Membre du Club
 
Avatar de Oceliane
 
Étudiant
Inscription : mars 2007
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 66
Points : 27
Points : 27
celui sur lequel le dois aussi être

http://access.developpez.com/faq/?page=TAAdmin#inhiber

j'ai le même souci, j'y arrive pas...
Oceliane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 12h00   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

Le réglage de AllowBypassKey est valide jusqu'à un nouveau réglage quelque soit le nombre de sessions (ouverture) de la base.

Donc il n'est pas nécessaire de mettre ce code en démarrage systèmatique.
  • Je régle AllowBypassKey à true (shift désactivé)
  • Je ferme la base
  • Je la réouvre : AllowBypassKey est toujours à true.
  • Je règle AllowBypassKey à false (shift activé)
  • je ferme la base
  • Je la réouvre : AllowBypassKey est toujours à false.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 14h57   #6
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
OK , cela j'ai bien compris mais où cette fonction de désactivation (et forcément d'activation) doit elle être programmée alors, il s'agit dans ce cas d'une action pour tout access? Ce que je veux , c'est qu'en ouvrant ma propre BDA que j'ai fabriquée je n'autorise pas l'usage de la fonction SHIFT.Ceci afin d'obliger l'utilisateur d'introduire son mot de passe à partir du fo motpasse qui je considère comme fo d'accueil.
Merci Loufab.
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 17h00   #7
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Cette action n'est valable que pour la base courante et on a besoin de l'exécuter qu'une seule fois (paramètre On/Off).

Donc si tu exécute le SetBypassProperty la propriété est fixée une fois pour toute. Jusqu'à que tu l'annule par un UnSetBypassProperty.

On peut imaginer que suivant le Password rentré il est accès ou non a un bouton (ou case à cocher) pour le Set ou UnSet.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 20h53   #8
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Citation:
Envoyé par loufab Voir le message
Cette action n'est valable que pour la base courante et on a besoin de l'exécuter qu'une seule fois (paramètre On/Off).

cela je comprends maintenant beaucoup mieux. Donc je peux utiliser cette action uniquement pour ma base créée.

Donc si tu exécute le SetBypassProperty la propriété est fixée une fois pour toute. Jusqu'à que tu l'annule par un UnSetBypassProperty.
OK mais je ne sais tjs pas comment et où aller pour mettre en oeuvre cette action et c'est bien là mon réel problème.

On peut imaginer que suivant le Password rentré il est accès ou non a un bouton (ou case à cocher) pour le Set ou UnSet.
C'est pas souhaitable ici , puiqu'alors l'utilisateur aurait la possibilité de modifier lui-même l'action? C'est bien cela l'idée?
Merci pour l'aide
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 23h06   #9
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonsoir.

Si tu veux condamner définitivement l'action de la touche Shift à l'ouverture, tu copies le code proposé dans un module de la base.
Tu fais ensuite une copie de ta base, c'est celle que tu vas mettre à disposition. Tu l'ouvres, tu exécutes SetByPassProperty. Si tu veux un .mde tu compiles à ce moment. Et tu refermes. Ta base est prête : la touche shift est inactive.
Tu gardes pour toi la base initiale sur laquelle la touche shift est toujours active à l'ouverture.

Bon courage,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h12   #10
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Merci pour ta réponse, mais j'ai déjà essayé,ça n'a pas marché.
Voici comment j'ai procédé (je m'y suis peut-être mal pris). j'ai crée un module puis une macro qui exécute le code intégralement copié sur ouverture du fo d'acceuil.Ce code le voici (il se trouve dans la FAQ "inhiber touche MAJ"):
auteur : Frank
Il est intéressant des fois d'inhiber l'effet de la touche MAJ (Ne pas exécuter les évènement de chargement de la base) pour ne pas afficher le conteneur de la base à l'utilisateur. Pour cela on dispose de deux procédures, l'une qui l'inhibe SetBypassProperty, l'autre qui l'active UnSetBypassProperty.
Code :
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
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
Tu pourras peut-être m'aidé à partir de là parce que franchement c'est pas facile et j'ai déjà passé pas mal de temps.Merci sincère.
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h22   #11
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Comme je te le disais hier, si tu as créé le module contenant le code en question, l'étape suivante est de faire une copie de la base. Tu auras alors :
- MaBase
- MaBase_copie.

Pour la suite : tu déploies un fichier .mdb ou .mde?

A+

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h27   #12
Nouveau Membre du Club
 
Avatar de Oceliane
 
Étudiant
Inscription : mars 2007
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 66
Points : 27
Points : 27


En fait, c'est assez simple: tu crées dans l'évènement "sur ouverture" de ton formulaire principal le code suivant:

Code :
1
2
3
4
5
6
Private Sub Form_Open(Cancel As Integer)
 
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
 
End sub
Tu ouvres ce formulaire, puis tu n'as qu'à mettre une apostrophe devant chaque ligne pour masquer le code. le jour où tu veux remettre la touche Shift, tu supprimme les apostrophes, tu mets AllowBypassKey à 'true', et c'est bon!

(bien sur, en supposant que tu puisse avoir un mode super-admin qui te permette d'éditer ta base...)
Oceliane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h34   #13
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Bien je vais essayer la version proposée par oceliane ce sera plus simple pour moi et je vous tiens rapidement au courant.Je croise les doigts.
A +++++
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 22h31   #14
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Bonsoir,
Désolé oceliane mais ta proposition ne fonctionne pas. J'ai donc fait une autre recherche sur le forum et je suis tombé sur les commentaires de "ashurai " dans VBA access :access 2003 macro autoexec et ça fonctionne.Il faut créer un module et une macro autoexec dont le code est le suivant :

Code :
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
Option Compare Database 
Option Explicit
 
Function DesactiveShift()
 
On Error GoTo errProperty
Dim Dbs As DAO.Database
Dim Prp As DAO.Property
 
Set Dbs = CurrentDb()
Dbs.Properties("AllowByPassKey") = False
Set Prp = Nothing
Dbs.Close
Set Dbs = Nothing
 
okProperty:
Exit Function
 
errProperty:
 
Set Prp = Dbs.CreateProperty("AllowByPassKey", 1, False)
Dbs.Properties.Append Prp
Resume okProperty
 
End Function
Seulement ,j'ai fait le petit malin et je me suis dit si je supprime la macro et le module de ma base, je peux ainsi réactiver la fonction SHIFT et bien non.Heureusement, j'avais fait une copie de ma base avant. Mais je me pose la question pourquoi. La touche SHIFT a t'elle été définitivement désactivée.Est-ce qu'il faut créer une autre macro et module pour réactiver la fonction SHIFT? Aurais-tu la réponse ou un connaisseur peut-il répondre.
Merci
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 10h19   #15
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

Citation:
Seulement ,j'ai fait le petit malin et je me suis dit si je supprime la macro et le module de ma base, je peux ainsi réactiver la fonction SHIFT et bien non.Heureusement, j'avais fait une copie de ma base avant. Mais je me pose la question pourquoi. La touche SHIFT a t'elle été définitivement désactivée.Est-ce qu'il faut créer une autre macro et module pour réactiver la fonction SHIFT? Aurais-tu la réponse ou un connaisseur peut-il répondre.
Merci
Apparement tu ne lis pas tous les posts de cette enfilade. Il y a déjà eu une réponse à tes questions.

Il y a une règle de fonctionnement que j'ai donné sous forme de liste.

Donc je me répète !

1 - Le code exécuté à chaque ouverture ne sert à rien. C'est d'une logique désarmante !
2 - Les Bypass étant de type ON/OFF il faut bien un déclencheur pour le faire passer d'un état à l'autre. On peut utiliser plusieurs moyens (bouton protégé avec password, ligne de commande avec paramètres...)


Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 12h37   #16
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Bonjour Loufab,

Je m'excuse mais je suis perdu . Tu me mets précédemment Allowbypasskey à true (pr désactiver Shift) or j'ai vu sur le site que c'était pluôt false. Mais ce n'est pas à proprement la question essentielle. Ce que j'ai fait ,si je me comprends bien, c'est le code actif pour ma base pour toutes les ouvertures, donc fixé une fois pour toutes , selon tes explications ici plus haut. Et en fait je voulais savoir pourquoi la suppression de la macro et du module ne changeait rien. Et en dernier ressort il me faut donc tout simplement changer true par false ou l'inverse mais à l'aide d'un déclencheur comme tu dis. C'est bien ça.
Merci Loufab
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 17h43   #17
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
L'interception du shift se fait au moment du démarrage, lorsque le code s'exécute celle-ci a déjà eu lieu. Donc le code ne sert à rien pour la session courante, il n'aura d'éffet qu'au prochain démarrage de l'appli.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web