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

Access Discussion :

Récupérer la valeur pk_utilisateur


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 36
    Points : 11
    Points
    11
    Par défaut Récupérer la valeur pk_utilisateur
    Bonjour,

    J'ai fais ça en formulaire de connexion à ma BDD

    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
    Private Sub connexion_Click()
    Dim sql, ID_connexion, profil   As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT pk_utilisateur, profil FROM t_utilisateur WHERE login = '" & Me.login & "' AND password ='" & Me.password & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "f_navigation", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "f_connexion"
      ID_connexion = rs("pk_utilisateur").Value
      profil_utilisateur = rs("profil").Value
     
    Else
      MsgBox "Identifiant ou 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
    J'aimerai récupérer la valeur du champ pk_utilisateur et pas moyen

    quelqu'un peu m'aider ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J'aimerai récupérer la valeur du champ pk_utilisateur et pas moyen
    À priori le code est correct même si on aurait pu faire un peu différement.

    Qu'as-tu ?
    • Tu n'as pas la valeur attendue. Quelle valeur attendais-tu ? Qu'as-tu eu ?
    • Tu n'as pas de valeur du tout.
    • Tu as un erreur. Laquelle ? sur quelle ligne ?


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 36
    Points : 11
    Points
    11
    Par défaut
    je devrais avoir un chiffre, l'id de l'enregistrement en fait

    je met ça dans le formulaire où je veux récupérer

    ID_connexion_users = ID_connexion

    ID_connexion_users étant le champ où je veux que ma valeur s'affiche...

    et rien, aucune valeur...
    pas de message d'erreur

    de plus le code de connexion fonctionne puisque quand je tape un mauvais mot de passe, j'ai bien le message d'erreur...

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Est-ce que tu t'attends à voir cette valeur dans f_navigation ?

    Parce là, il n'y a pas le code pour cela.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 36
    Points : 11
    Points
    11
    Par défaut
    oui c'est ce que je veux faire, en fait cette ID_connexion devra suivre dans tous les formulaires...
    et là franchement j'arrive pas à le faire

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Quelle version de Access utilises-tu ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 630
    Points : 14 599
    Points
    14 599
    Par défaut
    bonsoir marot_r et gudule1er,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub connexion_Click()
    Dim sql, ID_connexion, profil   As String
    ...
    ID_connexion = rs("pk_utilisateur").Value
    profil_utilisateur = rs("profil").Value
    ...
    tu renseignes 2 variables: ID_connexion et profil, elles sont dans la Private Sub connexion_Click() donc uniquement visibles dans cet environnement mais à aucun moment tu ne les passes au formulaire f_navigation, donc tu ne les verras plus dès que le formulaire f_connexion sera fermé.
    Si ces contrôles sont aussi dans le formulaire f_navigation, il faut les alimenter juste après son ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.OpenForm "f_navigation", acNormal, , , , acWindowNormal
    Forms!f_navigation.ID_connexion =  rs("pk_utilisateur").Value
    Forms!f_navigation.profil_utilisateur = rs("profil").Value
    Du coup les 2 variables ne servent plus à rien.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 36
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    je suis en Access 2016.

    je vais essayer le code fourni

    merci

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 36
    Points : 11
    Points
    11
    Par défaut
    et il y a pas moyen de créer une sorte de "variable de session" que va me suivre sur toute l'appli ?

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 630
    Points : 14 599
    Points
    14 599
    Par défaut
    Tout à fait : il existe les variable globales à déclarer dans un Module standard. Mais j'ai vu beaucoup de critiques défavorables concernant leur utilisation.
    Le plus sécurisé serait de stocker ces valeurs dans une table locale (qui n'aurait qu'un seul enregistrement) et d' y accéder via la fonction RechDom (DLookup en anglais) dans chaque formulaire:

    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
    Private Sub connexion_Click()
    Dim sql As String, ID_connexion As String, profil As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT pk_utilisateur, profil FROM t_utilisateur WHERE login = '" & Me.login & "' AND password ='" & Me.password & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
     
    If Not rs.EOF Then
        ID_connexion = rs("pk_utilisateur").Value
        profil_utilisateur = rs("profil").Value
        ' suppression des données de l'utilisateur connecté dans la tale locale
        sql = "delete * from tblConnexionLocale;"
        currentdb.execute sql
        ' chargement des données de l'utilisateur connecté dans la tale locale
        sql = "insert into tblConnexionLocale (utilisateur, profil) values('" & ID_connexion & "', '" & profil_utilisateur & "');"
        currentdb.execute sql
        DoCmd.Close acForm, "f_connexion"
        DoCmd.OpenForm "f_navigation", acNormal, , , , acWindowNormal
    Else
        MsgBox "Identifiant ou mot de passe incorrect ", vbInformation, "Connexion"
        i = i + 1
    End If
    rs.close
    If i = 3 Then 
        MsgBox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical
        DoCmd.Quit
    End If
    End Sub
    et dans les contrôles des formulaires :
    =RechDom("utilisateur";"tblConnexionLocale")
    =RechDom("profil";"tblConnexionLocale")

    PS: je ne sais trop de quel type est ID_connexion String ou Long ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Et depuis la version 2010 (il me semble) tu as la collection TempVars qui te permet d'avoir des variables globales "persistantes".
    Elles résistent notamment aux erreurs.

    Même si je ne suis pas un grand fan des variables globales, c'est bon à connaître.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. DBGrid récupérer les valeurs de l'enregistrement courant
    Par bob_sapp dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/09/2014, 07h56
  2. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  3. Réponses: 2
    Dernier message: 03/06/2004, 08h32
  4. [Couleur] Récupérer les valeurs R,V,B et L,U,V ?
    Par M4v3rick dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/01/2004, 03h28
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

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