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 :

Rechercher une ligne dans une table pour mot de passe


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 380
    Points : 134
    Points
    134
    Par défaut Rechercher une ligne dans une table pour mot de passe
    Bonjour,

    Pour le moment et cela fonctionne très bien, j'ai un formulaire (A) qui lors de son ouverture ouvre un autre formulaire (B) qui me demande un login et un mot de passe. Si login et mot de passe erroné, alors pas d'ouverture du formulaire (A)

    Les logins et mots de passe sont renseignés dans du code VBA du formulaire (B).
    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
    Private Sub btnOK_Click()
    If IsNull(Me.txtMotDePasse) Then
        MsgBox "Login !", vbInformation
        Me.txtMotDePasse.SetFocus
        Exit Sub
    End If
     
    ' D CEDRIC
    If Me.txtUser = "cedric" And Me.txtMotDePasse = "1234" Then
        ' Fermer la boîte de dialogue "Identification"
        Application.TempVars.Add "Ma Variable", "Cédric D"
        DoCmd.Close
        blnPasswordOK = True
    Else
     
    ' S STEPHANIE
    If Me.txtUser = "stephanie" And Me.txtMotDePasse = "4321" Then
        ' Fermer la boîte de dialogue "Identification"
        Application.TempVars.Add "Ma Variable", "Stéphanie S"
        DoCmd.Close
        blnPasswordOK = True
    Else
     
    ' MARC D
    If Me.txtUser = "marc" And Me.txtMotDePasse = "987!a" Then
        ' Fermer la boîte de dialogue "Identification"
        Application.TempVars.Add "Ma Variable", "Marc D"
        DoCmd.Close
        blnPasswordOK = True
    Else
        MsgBox "User ou mot de passe incorrect.", vbExclamation
        Me.txtMotDePasse.SetFocus
        End If: End If: End If
    End Sub
    Ce que j'aimerais, c'est :

    • Transformer le code VBA du formulaire (B) pour qu'il puisse aller chercher les login et mots de passe dans une table


    Exemple de table :

    ID | LOGIN | MOT DE PASSE | NOM
    =============================
    1 | cedric | 1234 | D Cédric
    2 | stephanie | 4321 | S Stéphanie
    3 | marc | 987!a | D Marc
    4...
    5
    6
    ...

    Merci d'avance pour votre aide :-)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,
    La fonction Dcount peut faire l'affaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If DCount("*", "maTable", "LOGIN = '" & Me.txtUser & "' AND [MOT DE PASSE] = '" & Me.txtMotDePasse & "'") = 1 Then
        MsgBox "Vous êtes connecté"
    Else
        MsgBox "Le login ou le mot de passe est erroné"
    End If

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 380
    Points : 134
    Points
    134
    Par défaut
    Bonjour,

    SUPER, merci, merci, cela fonctionne, très bien ! Il me manque cependant une donnée...
    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
    Private Sub btnOK_Click()
    If IsNull(Me.txtMotDePasse) Then
        MsgBox "Login !", vbInformation
        Me.txtMotDePasse.SetFocus
        Exit Sub
    End If
    If DCount("*", "Users", "LOGIN = '" & Me.txtUser & "' AND [MOT DE PASSE] = '" & Me.txtMotDePasse & "'") = 1 Then
        MsgBox "Vous êtes connecté"
        DoCmd.Close
        blnPasswordOK = True
    Else
        MsgBox "User ou mot de passe incorrect.", vbExclamation
        Me.txtMotDePasse.SetFocus
    End If
     
    End Sub
    Lorsque le formulaire (A) est ouvert, il y a un champ [me.texte3.value] qui affiche le nom de la personne. Ce champ était alimenté via la commande Application.TempVars.Add "Ma Variable", "Cédric D"

    Comment faire pour prendre la valeur de [NOM], l'insérer dans le code Application.TempVars.Add "Ma Variable", [NOM] et ensuite le mettre dans votre code ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Tu ne cherches pas beaucoup
    La fonction DLookup doit faire l'affaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.TempVars.Add "MaVariable", DLookup("Nom", "Users", "LOGIN = '" & Me.txtUser & "' AND [MOT DE PASSE] = '" & Me.txtMotDePasse & "'")

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2009
    Messages : 380
    Points : 134
    Points
    134
    Par défaut
    J'avais effectivement cliqué sur le lien plus haut, j'ai effectivement vu les différentes fonctions et vu DLookup,

    Mais je ne voyais pas comme l'intégrer à Application.TempVars.Add...

    Mais, avec ton exemple, effectivement cela semble simple... désolé,, mais Grand Merci pour ton aide :-)

    Bonne journée à toi

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Sinon tu peux utiliser DAO
    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
        Dim rst As DAO.Recordset
        Dim strSQL As String
     
        strSQL = "SELECT * FROM Users WHERE LOGIN = '" & Me.txtUser & "' AND [MOT DE PASSE] = '" & Me.txtMotDePasse & "';"
        Set rst = CurrentDb.OpenRecordset(strSQL)
     
        If rst.EOF Then
            MsgBox "User ou mot de passe incorrect.", vbExclamation
            Me.txtMotDePasse.SetFocus
        Else
            Me.texte3 = rst("Nom")
            MsgBox "Vous êtes connecté"
            DoCmd.Close
            blnPasswordOK = True
        End If

  7. #7
    Candidat au Club
    Homme Profil pro
    Retraité informaticien
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité informaticien
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Module de logon
    Bonjour à tous
    J'essaie de mettre en place pour une association un petit site Web (à base de page perso pour un début)
    Grâce au logiciel Kompozer, j'ai réussi à faire quelque chose de suffisant mais ... petit problème de sécurité.

    Ces pages comprennent des noms de personne que nous ne voulons pas laisser en pâture dans la nature...

    Je suis donc à la recherche du module objet de cette discussion mais "clef en main"

    Je suis totalement incompétent en langage de programmation, mais j'ai fait assez d'informatique pour comprendre ce module à la lecture, changer quelques libellés pour le personnaliser, par contre je maîtrise bien les autres SQL.

    Pour faire simple au début, je pourrais me contenter d'un simple password d'accès à la page Web, avant de gérer et maintenir une table d'utilisateurs authentifiés individuellement.

    Je sais que c'est un peu "gonflé" de demander un module complet qui marche, mais ma reconnaissance sera éternelle
    Un grand merci d'avance pour votre aide
    A+
    Georges

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

Discussions similaires

  1. Récupérer une information d'une ligne dans une table
    Par Lebas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/04/2013, 10h24
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  4. Réponses: 3
    Dernier message: 29/01/2008, 12h08
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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