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

VBA Access Discussion :

Contrôle des mots de passe


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Contrôle des mots de passe
    Bonjour,

    Je debute avec Access et je voudrai à partir de donnée entrée dans un formulaire verifier que le Nom(Login) et le Mot de Passe (pwd) correspondent à ceux de la table Client de la base de donnée... j'ai fais ca :

    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 AccueilGestionnaire_Click()
    Dim MotDePasse As String, Nom As String
     
    MotDePasse = Me!MotDePasse
    Nom = Me!Login
    Dim res As Recordset
    Set db = CurrentDb()
    Set res = db.OpenRecordset("select pwd from Client where Client.Nom =""&Nom&""")
     
    If res!champ = Nom Then
    DoCmd.Close
    DoCmd.OpenForm "rootMenu"
     
    End If
    Et en fait ca m'affiche ce message d'erreur :
    "Element non trouvé dans cette collection"
    alors que les données entrées dans le formulaire existe dans la Table client.


    Si quelqu'un veut bien m'apporter son aide !!

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je penses que l'erreur vient de cette ligne
    Si c'est le cas, cela signifie que le nom Champ n'est pas reconnu comme nom du champ.

    Tu as des exemples dans la FAQ : http://access.developpez.com/faq/?page=TAAdmin#login

    De plus, tu veux tester un nom, alors que tu récupères le champ pwd dans ta table.

    Starec

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci

    En effet, c'est cette ligne qui est en jaune quand je click sur dèbogage de plus, j'ai fais une erreur, Il faut lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If res!champ = MotDePasse
    à la place de
    Mais lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set res = db.OpenRecordset("select pwd from Client where Client.Nom =""&Nom&""")
    If res!champ = MotDePasse
    res est égal au mot de passe (pwd) du client entré dans la base et je vérifie si il est égal à celui entré dans le formulaire (MotDePasse) non ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Quand j'ai à faire un truc sur les mots de passes, je n'utilise pas les recordsets, car en général ces tables ne sont pas grosses.

    J'utilise la fonction de domaine DLookup, pour faire des tests de mots de passes.

    Ainsi par exemple si dans ta table Client tu as le champ MotDePasse et Nom, tu peux faire une fonction de ce genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function TestPwd(strMotDePasse As String, strNom As String) As Boolean
        If IsNull(DLookup("strPwd", "tbl_Client", "strPwd='" & strMotDePasse & "' AND strClient='" & strNom & "'")) Then
            TestPwd = False
        Else
            TestPwd = True
        End If
    End Function
    Elle renvoie Vrai (true) si le mot de passe est bon, et Faux (False), si celui-ci est vrai.

    Plus d'infos sur les fonctions de domaines ici.

    Si tu veux rester sur les recordset et DAO, je t'invite à relire cet article : http://warin.developpez.com/access/dao/

    Starec

  5. #5
    Membre actif Avatar de le_dilem
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2005
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2005
    Messages : 313
    Points : 236
    Points
    236
    Par défaut salut
    je pense qu'il reconnait pas le champ Nom dans ta requete essaye ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    res = db.OpenRecordset("select pwd from Client where" & _
     "Client.Nom =' " & Nom & " '"")
    Je fume du thé et je reste éveillé, le cauchemar continue.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut merci
    J'ai utilisé la fonction de Starec et ça marche, merci pour vos réponses!
    (dsl pour le retard j'étais parti en vacances)

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

Discussions similaires

  1. Contrôle des mots de passe
    Par Munkey74 dans le forum Langage
    Réponses: 4
    Dernier message: 12/06/2007, 15h05
  2. fichier des mots de passe
    Par Isabella dans le forum Oracle
    Réponses: 6
    Dernier message: 25/02/2006, 08h52
  3. Sauvegarde des Mots de passe de connexion Web
    Par zakuli dans le forum Windows XP
    Réponses: 5
    Dernier message: 08/12/2005, 19h05
  4. enregistrer et masquer des mots de passe
    Par champion dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/08/2004, 20h10
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

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