Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 20/10/2011, 14h40   #1
Invité régulier
 
Homme Pierre Bernard
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bernard
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 8
Points : 8
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 :
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
pierre1923 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 15h57   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 659
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 659
Points : 6 225
Points : 6 225
Envoyer un message via MSN à argyronet
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 :
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.
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h04   #3
Invité régulier
 
Homme Pierre Bernard
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bernard
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 8
Points : 8
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
pierre1923 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h15   #4
Invité régulier
 
Homme Pierre Bernard
Étudiant
Inscription : juillet 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bernard
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 15
Points : 8
Points : 8
Cela fonctionne parfaitement ! merci argyronet c'est encore mieux que ce que j'esperais.

Bonne journée
pierre1923 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 16h50   #5
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 659
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 659
Points : 6 225
Points : 6 225
Envoyer un message via MSN à argyronet
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 :
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
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h32.


 
 
 
 
Partenaires

Hébergement Web