IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

IHM Discussion :

Mot de passe avec plusieurs réponses [AC-2007]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Mot de passe avec plusieurs réponses
    Bonjour tout le monde !

    je sollicite votre aide car je suis débutant sur access et bloqué sur un code.
    Ce code se déclenche après un clic sur un bouton et n'ouvre le formulaire concerné uniquement si l'utilisateur tape le bon mot de passe. J'ai le code qui correspond mais j'aimerais qu'il y ait plusieurs réponses possible. Avez vous une idée ?
    voila mon bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Bouton_Click()
    Dim pwd As String
    Dim stDocName As String
     
    pwd = InputBox("Entrez le mot de passe")
    If pwd = "MDP1" Then
     
    stDocName = "nouveau client"
    DoCmd.OpenForm stDocName
      Else
      Exit Sub
     
    End If
    End Sub
    j'aimerais que cette action s'effectue mais pas seulement lorsque MDP1 est saisi mais aussi MDP 2 et MDP3 par exemple.

    Merci d'avance à tout ceux qui pourraient m'aider

    Amicalement,

    Pierre

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Un peu léger comme façon de faire d'un point de vue sécurité...
    On ne saisie pas un mot de passe dans un InputBox car il est visible.
    Il faut créer un formulaire avec une zone de texte avec sa propriété Password du Masque de saisie et un bouton OK pour valider.

    Ensuite pour l'histoire des multiples combinaisons, on peut procéder avec une boucle...
    Mais c'est pareil... Coté sécurité, les MDP devraient ête cryptés pour ne pas être facile à trouver. Et il faut bloquer le nombre de tentatives...
    Voici un exemple (dans la mesure ou vous avez créé le formulaire frmPassword)
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Compare Database
    Option Explicit
     
    Private m_intCount                                        As Integer
     
    Private Sub cmdOK_Click()
    Dim vntaPassword
    Dim strPassword                                        As String
    Dim intTest                                            As Integer
        'On construit un tableau avec les MDP possible
        vntaPassword = Array("MDP1", "TotoTitiTata", "NViz5uz&é35")
        'On affecte la valeur du mot d epasse à la variable
        strPassword = Nz(Me.txtPassword.Value, vbNullString)
        'On compte le nombre tentatives
        m_intCount = m_intCount + 1
        'Si ça dépasse 3 (on commence à 0)
        If m_intCount > 2 Then
            MsgBox "Eh ben, eh ben, on a des trous de mémoire ?", 48, "Erreur"
            DoCmd.Close acForm, Me.Name
        End If
        'On test selon la dimension la plus haute du tableau (ici 2 donc 3 valeurs)
        For intTest = 0 To UBound(vntaPassword)
            If StrComp(strPassword, vntaPassword(intTest), vbBinaryCompare) = 0 Then
                'Si c'est bon (strcomp compare les chaîne en respectant la casse)
                MsgBox "Sésame, ouvre toi...", , "C'est bon"
                'On ferme ce formulaire
                DoCmd.Close acForm, Me.Name
                'On ouvre l'autre
                DoCmd.OpenForm "frmNouveauClient", acNormal, , , acFormAdd, acDialog
                'Et on sort de la boucle, inutile de comparer les autres possibilités
                Exit For
            End If
        Next
    End Sub
    Ca va aller ?

    Argy

    P.S. nouveau client n'est pas un nom d'objet correct il faut le préfixer et ne pas mettre d'espaces.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    argyronet merci !

    Je vais essayer de décrypter tout cela !

    Je conçois tout a fait que ma première option ne corresponde pas au summum de la sécurité mais en même temps ce n'est pas pour sécuriser quelque chose d'important et le utilisateurs n'iront pas essayer de casser le code. Pour ma gouverne qu'aurais je du changer a mon code afin qu'il fonctionne ?

    En tout cas merci beaucoup pour ta réponse rapide !

    Pierre

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Cela fonctionne parfaitement ! merci argyronet c'est encore mieux que ce que j'esperais.

    Bonne journée

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bien pour un débutant, 11 minutes pour décrypter et mettre en application...

    Citation Envoyé par pierre1923 Voir le message
    Pour ma gouverne qu'aurais je du changer a mon code afin qu'il fonctionne ?
    Eh bien un truc deans le style :
    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
    18
    19
    20
    21
    22
    23
    24
    25
     
    Private Sub Bouton_Click()
    Dim strPwdNum                                          As String
    Dim intPwdNum                                          As Integer
    Dim strSaisie                                                As String
    Dim stDocName                                          As String
     
        strSaisie = InputBox("Entrez le mot de passe")
        If InStr(1, strSaisie, "MDP", vbBinaryCompare) Then
            strPwdNum = Right$(strSaisie, 1)
            If IsNumeric(strPwdNum) Then
                intPwdNum = CInt(strPwdNum)
            Else
                MsgBox "Mot de passe incorrect !", vbExclamation
                Exit Sub
            End If
        End If
        If Choose(intPwdNum, 1, 2, 3) Then
            stDocName = "nouveau client"
            DoCmd.OpenForm stDocName
        Else
            MsgBox "Mot de passe incorrect !", vbExclamation
            Exit Sub
        End If
    End Sub
    Ca vous permattra découvrir les fonctions Instr() et Choose()...

    Argy

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

Discussions similaires

  1. demander plusieurs fois mot de passe avec htaccess
    Par magy91 dans le forum Sécurité
    Réponses: 1
    Dernier message: 29/02/2008, 17h44
  2. Réponses: 1
    Dernier message: 27/12/2006, 20h04
  3. Réponses: 2
    Dernier message: 17/09/2006, 19h21
  4. gestion des mot de passe avec Access
    Par cyberbiker dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/09/2006, 15h42
  5. problème de MOT DE PASSE avec mysql
    Par u_brush_u dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/07/2006, 12h35

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