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 :

Login sur un formulaire avec table liée - Users


Sujet :

VBA Access

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 382
    Points : 136
    Points
    136
    Par défaut Login sur un formulaire avec table liée - Users
    Bonjour,

    Comme vous pouvez voir dans le fichier joint, j'arrive bien à intégrer l'ouverture d'une fenêtre demandant un mot de passe, mais j'aimerais plus...

    J'aimerais qu'au lieu de demander le mot de passe, encodé dans le code du formulaire (Mot de passe : 'test', pour l'exemple), il prenne le mot de passe directement dans la table 'Utilisateurs', avec en plus l'ID de l'utilisateur !

    Avez-vous une idée des changements à faire pour que cela fonctionne, car moi, non...

    Merci d'avance pour vos lumières :-)
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Récupérer le mot de passe saisie (MDPsaisi) puis faire une requête qui va chercher dans la table le mot de passe (MDP) que cet utilisateur devrait avoir saisi par rapport a son Id (ID=IDsaisi).

    Exemple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MDP FROM Utilisateurs WHERE ID = IDsaisi
    Ensuite, comparer le mot de passe saisi (MDPsaisi) avec la valeure retournée par la requête (MDP)

    PS : Vous pouvez aussi utiliser une fonction de domaine du style DLookup.

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

    La FAQ est ton ami : http://access.developpez.com/faq/?page=TAAdmin#login

    Philippe

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 382
    Points : 136
    Points
    136
    Par défaut
    Merci à vous, mais je n'y arrive pas :-( Pourriez-vous m'aider en me donnant par exemple un exemple ?

    Ps : Je n'arrive pas non plus à utiliser ce 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Comment concevoir un formulaire login/mot de passe ?	
    Mise à jour le 14/10/2007
    auteur : Morsi
    Pour exécuter ce code, il faut activer la référence : Microsoft DAO 3.x Object Library.
    
    Le formulaire login/mot de passe permettra à un utilisateur de s'identifier et à la base de le reconnaître et de décider de lui donner
    ou non la permission d'accéder à la base. Pour ce faire, on aura besoin d'une table T_User et d'un formulaire " F_Connexion ".
    
    Table T_User (TRIGRAMME, NOM, PRENOM, GROUPE, PASWD) tous les champs sont de type texte. Un enregistrement exemple
    de cette table : T_User(SED, SEBASTIEN, DULOT, Administrateur, root).
    
    L'événement on_click du bouton Connexion :
    
    Private Sub connexion_Click()
    Me.Requery
    Dim sql, User_id, User_groupe   As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM T_USERS WHERE TRIGRAMME = \'" & Me.txt_user & "\' AND PASWD =\'"& Me.txt_pass & "\';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "F_Autre_Formulaire", acNormal, , , , acWindowNormal
      DoCmd.close acForm, "F_CONNEXION"
      User_id = rs("TRIGRAMME").value
      User_groupe = rs("GROUPE").value
    Else
      MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
      i = i + 1
    End If
    If i = 3 Then 
    Msgbox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical
    DoCmd.Quit
    End If
    End Sub

    • Ok, pour la création de la table, enfin, je crois...
    • Ok, pour le création du formulaire avec le code sur l'événement on_click d'un bouton...
    • PAS Ok, pour les différents champs du formulaire ! Ou entrer l'Id et le mot de passe ? EDIT : txt_user et txt_pass
    • Comment sait-il le formulaire à ouvrir après avoir entrer les bons codes ? - EDIT : F_Autre_Formulaire :-)


    Dans mon exemple, la fenêtre avec mot de passe peut être utilisée pour n'importe quel formulaire, car cette fenêtre est appelée par le formulaire lui même... ce qui est bien ! Il me faudrait... une fusion entre le code précédent et mon exemple... est-ce possible ?

    Merci d'avance pour vos lumières :-)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 382
    Points : 136
    Points
    136
    Par défaut
    ATTENTION, à mon avis, le code devrait plutôt être comme ceci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT * FROM T_USERS WHERE TRIGRAMME ='\" & Me.txt_user & "\' AND PASWD ='\" & Me.txt_pass & "\';"
    Non ?... Mais ne fonctionne toujours pas...

    EDIT : Voici mon test...
    Fichiers attachés Fichiers attachés

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 126
    Points : 105
    Points
    105
    Par défaut Mêmee problème
    Salut à tous, au faite j'ai le même problème.
    Je ne sais pas si le problème provient du sql ou d'autre.
    Merci pour votre aide.
    NB : Un exemple sera la bienvenue.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 126
    Points : 105
    Points
    105
    Par défaut Une solution à ta porté
    Salut à tous,
    Je pense qu'il y avais un problème dans le sql. Voilà je l'ai corrigé.
    je te met le code et ta base modifié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
    17
    18
    19
    20
    21
    22
    Private Sub Commande0_Click()
    Me.Requery
    Dim sql, User_id, User_groupe   As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM T_USERS WHERE TRIGRAMME ='" & Me.txt_user & "' AND PASWD ='" & Me.txt_pass & "'"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "F_MENU", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "F_CONNEXION"
      User_id = rs("TRIGRAMME").Value
      User_groupe = rs("GROUPE").Value
    Else
      Me.tenta.Value = Me.tenta.Value - 1
      MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
      i = i + 1
    End If
    If i = 3 Then
    MsgBox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical
    DoCmd.Quit
    End If
    End Sub
    Le fichier joint est ici, N'oublie pas de mettre résolu :
    Formulaire login.zip

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut NZ et DLookup [Combiné]
    Salut je pense que les fonctions NZ et DLookup peuvent faire l'affaire. Voir pièce jointeTest_RV.rar

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2016
    Messages : 13
    Points : 18
    Points
    18
    Par défaut ERREUR DANS LE SQL
    Une errer s'est glissé dans le code SQL
    sql = "SELECT * FROM T_USERS WHERE TRIGRAMME ='\" & Me.txt_user & "\' AND PASWD ='\" & Me.txt_pass & "\';"

    Vous enlever les \


    et vous obtenez ceux-ci
    sql = "SELECT * FROM T_USERS WHERE TRIGRAMME ='" & Me.txt_user & "' AND PASWD ='" & Me.txt_pass & "';"

    Bonne suite

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/05/2014, 16h16
  2. [AC-2007] lenteurs avec table liée sur fichier Excel
    Par tibofo dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/10/2010, 10h13
  3. [AC-2003] Problème de lag sur formulaire avec table liée
    Par benjamin002 dans le forum IHM
    Réponses: 0
    Dernier message: 04/02/2010, 09h42
  4. Lenteur MDB avec tables liées sur clé USB
    Par chrisviper dans le forum Access
    Réponses: 7
    Dernier message: 15/12/2007, 10h52
  5. Réponses: 2
    Dernier message: 07/08/2007, 16h24

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