Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut Decrementation automatique de 30s en cas d'une erreur de mot de mot passe 3 fois
    Salut à tous, Je suis nouveau en suite etudiant. Je suis entrain de mettre en place une application mais au niveau de mon formulaire login j'ai donc besoin de controler l'accès lorsqu'une tentative de mot de incorrecte est detectée 3 fois.

    Explicitement voilà mon problème: Je veux lorsqu'une tentative de mot de passe incorrecte est detectée 3 fois alors le boutton de validation soit sans effect jusqu'à 30secondes et la decrementation de ces 30s soit visible comme au niveau des telephones . Mais Je n'ai aucune idée sur le code permettant. Dans l'espoir d'une bonne response,.
    Cordialement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 501
    Points : 20 501
    Points
    20 501
    Par défaut
    Bonjour.

    Question simple mais reponse complexe.


    Et il y a plusieurs questions dans ta question.

    Je veux lorsqu'une tentative de mot de passe incorrecte est detectée 3 fois alors le boutton de validation soit sans effect
    Je vais supposer que tu as

    1. un formulaire de connexion existant avec
      1. un champ texte CodeUtilisateur.
      2. un champ texte MotPasse.
      3. un bouton connexion : btnConnexion.
      4. un champ texte message.
      5. un champ texte decompte].

    2. et une table des utilisateurs /mot de passe
      tblUtilisateur
      ClefUntilisateur (autonum)
      CodeUtilisateur (Texte, 255 carcateres)
      MotPasse (Texte, 255 carcateres)


    Une fois dans l'editeur de code va dans le menu Outils/Options et coche "Declaration des variables obligatoire". C'est une aide tres precieuse pour du code de qualite.

    En haut de module tu devrais avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Option Explicit
    Si Option Explicit n'y ai pas ajoute le a la main. L'option declaration des variables n'est pas retro active. Apres Access se charge de le faire pour toi.

    Juste sous le dernier Option, tapes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim m_CptEssai as long 'Compteur d'essais
    Dans le code de la procedure evenementielle de l'evenement Sur Click du bouton "Connexion".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        m_CptEssai=m_CptEssai+1
     
        if m_CptEssai > 3 then
                me.message="Trop d'essais, la connexion est bloquee." 'Ici le texte que tu veux.
                me.btnConnexion.enabled=false 'desactive le bouton
                call Attendre 'Attend 30 s
                me.message="" 'Efface le message
                me.btnConnexion.enabled=true 'Reactive le bouton
                m_CptEssai=0 'Remet le compteur d'essais a 0
            else
     
               if nz(Dfirst("MotPasse","tblUtilisateur", "[CodeUtilisateur]=""" & me.CodeUtilisateur & """"), "") = me.MotPasse then
                   msgbox "Bienvenue dans l'application"
                   docmd.close acForm, me.name 'Ferme l'ecran de connexion
               end if
     
        end if
    jusqu'à 30secondes et la decrementation de ces 30s soit visible comme au niveau des telephones .
    Access n'est pas tres fort pour les animations, la solution la plus simple est un controle texte qui va aficher ton decompteur.

    Sous le end sub de la procdure evenementielle du bouton connexion, tu tapes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private sub Attendre()
        'Attends X secondes
        dim debut as date
        const ATTENTE as long=30
        dim delais as long
     
        delais = datediff("s",debut, now())
     
        do while delais <= ATTENTE 'Attend 30 seconds
            me.decompte="Attendez " & ATTENTE - delais & " secondes." 'Affiche le decompte
            doevents 'S'assure que l'affichage a lieu
            delais=datediff("s",debut, now())
        loop
     
    end sub
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Merci Vraiment marot_r pour votre contribution.

    Mais comme je l'ai dit bien, et la cest ma faiblesse dabord car je suis null dans Les codes. Donc il me faudra plus de temps pour chercher à faire telque vous avez expliqué. Cest aussi ma premiere fois de m'inscrir dans un forum Donc je manque d'experience encore. Je ne crois pas que cest decourageant car jespere devenir un Bon programmeur.

    Merci pour votre bonne comprehension.

    Cordialement.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 501
    Points : 20 501
    Points
    20 501
    Par défaut
    Bonjour,

    Je n'ai pas recu de message prive et cette discussion est publique.

    Quiconque a du temps et les competences peut y participer.

    J'ai pas mal detaille les etapes mais si certaines ne te paraissent pas claires n'hesites pas a demander des explications.

    Evite les messages du type "Je comprend rien !", c'est certe liberateur mais ne permet pas de t'apporter de l'aide.
    Si tu as un probleme avec du code dit des choses comme :

    je ne comprend l'instruction X sur la ligne Y
    Ou je ne comprend pas a quoi sert ce code
    ou j'ai l'erreur Z sur la ligne 1234 du code ci-dessous.
    Bref essaye de decrire ce que tu ne comprends pas.

    Pour debuter je te suggere de chercher des tutoriaux du type "Ma premiere BD Access".
    Cela te donnera une premiere experience et une exposition au vocabulaire et aux outils d'Access.

    Voila, bon courage dans l'apprentissage de Access et de la programmation.

    Pour l'annecdote, j'avais commence a me former sur Access avec la version sur Windows 3.1 (version 2.0 il me semble) et je voullais faire un simple carnet d'adresse ... je n'y suis jamais parvenu.
    Trop de stock, pas d'internet a l'epoque, pas de benefice flagrant a apprendre cela.
    Ce n'est que de nombreuses annees plus tard et avec pas mal d'aide de plusieurs collegues que j'ai vraiment pris mes aises avec cet outil.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour

    Une fois encore Merci.

    A+

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot_r

    Au fait j'ai complié les codes et lorque les renseignemets des champs codeUtilisateur et MotPasse sont exactes alors ça passe bien. le message "Bienvenue dans l'application " s'affiche et apres clic sur OK le formulaire se ferme.

    Le controle de tentative derreur de mot de passe marche bien mais a 4 fois et le champ text message=Trop dessais,...
    Le boutton connexion se desactive
    mais le champs decompte est vide.

    Puis le message suivant s'afiche:

    Microsoft Visual Basic

    (Erreur d'execution '6'

    Dépassement de capacité)

    Quand je clique sur Debogage, la ligne ci-dessous est en jaune:

    delais =DateDiff("s", debut, Now())

    Cordialement.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 501
    Points : 20 501
    Points
    20 501
    Par défaut
    Bonjour.

    Desole, j'ai ooublie une instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim debut as date: debut=now()
    Pour le declenchement a 4, c'est normal tu m'as dit que tu voulais 3 essais donc on bloque quand la personne essaye une 4ieme fois.

    sinon tu peux ecrire le code comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
         if nz(Dfirst("MotPasse","tblUtilisateur", "[CodeUtilisateur]=""" & me.CodeUtilisateur & """"), "") = me.MotPasse then
               msgbox "Bienvenue dans l'application"
               docmd.close acForm, me.name 'Ferme l'ecran de connexion
            else
               m_CptEssai=m_CptEssai+1
     
              if m_CptEssai = 3 then
                   me.message="Trop d'essais, la connexion est bloquee." 'Ici le texte que tu veux.
                   me.btnConnexion.enabled=false 'desactive le bouton
                   call Attendre 'Attend 30 s
                   me.message="" 'Efface le message
                   me.btnConnexion.enabled=true 'Reactive le bouton
                   m_CptEssai=0 'Remet le compteur d'essais a 0
             end if
         end if
    Cela va bloquer tout de suite apres le 3ieme essais.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour marot_r

    Je tiens à te dire grand merci ça marché exactement.

    Cordialement.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut Recherche
    Bonjour

    OK, compris.

    Cordialement.

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    13 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 13 501
    Points : 20 501
    Points
    20 501
    Par défaut
    Bonjour.

    Pour avoir des reponses a une nouvelle question evite de poster dans une discussion "resolue".
    Quand tu as une question qui n'est pas en rapport avec ta discussion en cours, n'hesite pas et crees-en une nouvelle.
    Cela donne plus de visibilite a ta demande.
    Eventuellement dans la nouvelle discussion, refere l'ancienne.

    Bon pour repondre a ta question, il y a une tonne de tutoriels sur ce sujet donc je t'y refere.

    Les meilleurs cours et tutoriels pour apprendre Microsoft Access
    Interface : les formulaires dans Microsoft Access
    Formulaires de recherche
    https://access.developpez.com/cours/...#formrecherche

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [cast] dans le cas d'une Std::list
    Par ZaaN dans le forum SL & STL
    Réponses: 9
    Dernier message: 26/10/2006, 10h07
  2. Remplissage automatique de cellules Excel à partir d'une liste
    Par Gullivert dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2006, 17h48
  3. [PS SQL] générer une erreur en cas de mauvais traitement
    Par Piolet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/08/2006, 09h48
  4. comment lancer automatiquement 1 script au lieu d'une action sur un boutton
    Par winnie82 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 13/07/2006, 17h13
  5. pb de jointure : cas ou une clé étrangère est à NULL
    Par tiboleo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/11/2004, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo