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

IHM Discussion :

Utiliser variable dans une zone de texte


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Utiliser variable dans une zone de texte
    Bonjour à tous,
    j'utilise un formulaire de login sur ma base.

    je veux récuperer le nom de l'utilisateur, en fonction de l'authentification.
    mon formulaire de login fonctionne parfaitement grâce au tutorial du site (merci à son auteur )

    Voici le code de mon formulaire de login:

    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 Commande4_Click()
     
    Me.Requery
    Dim sql, User_id, User_Name As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM utilisateurs WHERE trigramme = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "ModèleV13", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "connexion"
      User_id = rs("trigramme").Value
      User_Name = rs("NOM").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és", vbCritical
    DoCmd.Quit
    End If
    End Sub
    J'ai donc User_id qui correspond au nom d'utilisateur et User_Name au nom complet de l'utilisateur.

    J'ai créé un module pour déclarer publiquement le User_Name afin de pouvoir le réutiliser dans mes différents formulaires.

    Code User_Name : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Option Compare Database
    Public User_Name As String

    Je voudrais maintenant utiliser ce User_Name dans une zone de texte qui se remplira automatiquement en fonction du login.

    Comment puis-je faire appel au module dans une zone de texte?

    Merci,
    Maxime

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    La première idée qui me vient est d'affecter ton champ de type Zone de texte par ta variable sur l'événement Current du formulaire ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Current()
         NomControle=User_Name 
    End Sub
    Mais il y a surement d'autres possibilitées ....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    merci MikeGo20 pour ton aide.

    ton code ne fonctionne, une variable ou une procédure est attendue, pas un module. Erreur de compilation.

    je continue de chercher de mon coté!

    Maxime

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Je viens de constater que tes variables User_id et User_Name ont été déclaré seulement pour le formulaire du Login ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim sql, User_id, User_Name As String
    Je te suggère des déclarer Global ou Public dans un Module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public User_id, User_Name As String

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    je viens de les déclarer comme tu me le suggérais toutes les deux en Public.
    peux tu me dire la différence entre Global et Public??

    par contre je n'arrive toujours pas a remplir une zone de texte en fonction de User_Name.

    Merci,
    Maxime

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par maxime350 Voir le message
    ...peux tu me dire la différence entre Global et Public??
    Global est un reliquat des premières version d'Access (je crois ???) remplacé par Public

    Citation Envoyé par maxime350 Voir le message
    par contre je n'arrive toujours pas a remplir une zone de texte en fonction de User_Name.
    Quand je parles de Modules, il faut comprendre la Collection Modules aux même titres que la Collection Tables , Rapports, Requêtes, Macro ...

    Si aucun Modules existe, il faut en créer un .... et y déclarer tes variables.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par mikeGo20 Voir le message
    Global est un reliquat des premières version d'Access (je crois ???) remplacé par Public
    Merci

    Quand je parles de Modules, il faut comprendre la Collection Modules aux même titres que la Collection Tables , Rapports, Requêtes, Macro ...

    Si aucun Modules existe, il faut en créer un .... et y déclarer tes variables.
    J'ai créé un module nommé Identifiant avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Compare Database
     
    Public User_id, User_Name As String
    mais avec ton code que tu ma donné dans ta première réponse cela ne fonctionne pas!

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Au moment du Login, ta variable est-elle belle et bien initialisé ??

    À l'ouverture des autres formulaires, la valeur est-elle conservée ??

    Si oui à ces 2 question, je veux voir ou et comment tu initialises ta Zone de texte ....

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Merci mikeGo20.

    Donc pour récapituler:

    Code du Formulaire de login:

    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
     
    Option Compare Database
     
    Private Sub Commande4_Click()
     
    Me.Requery
    Dim sql, User_id, User_Name As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM utilisateurs WHERE trigramme = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "ModèleV13", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "connexion"
      User_id = rs("trigramme").Value
      User_Name = rs("NOM").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és", vbCritical
    DoCmd.Quit
    End If
    End Sub
    Code du Module nommé Identifiant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Option Compare Database
    Public User_id, User_Name As String
    Code inséré dans mon formulaire qui doit reprendre le nom de la personne se logant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Current()
         Me.Texte475 = User_Name
    End Sub
    Je n'ai aucune erreur cependant mon champ texte475 ne prends pas le nom de la personne se logant!

    Je bloque complet là, et je ne comprends pas ta manipulation avec le Stop.

    Maxime

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Dans ton code du Login, tu as conservé la déclaration de tes variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim sql, User_id, User_Name As String
    corriges et tu devrais être OK ....

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par maxime350 Voir le message
    ... je ne comprends pas ta manipulation avec le Stop.
    le stop permet de faire un arret d'exécution dans le code et d'y valider certains éléments avec du pas à pas (touche F8) ...
    mais il est préférable d'utiliser les points d'arrêts, car le client n'aimes pas tomber dans une fenêtre de code .... quand on oubli de l'effacer

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    merci mikeGo20 cela fonctionne maintenant

    par contre j'ai du modifier le code du formulaire de cette façon:

    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
    Option Compare Database
     
    Private Sub Commande4_Click()
     
    Me.Requery
    Dim sql, User_id, User_Name As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM utilisateurs WHERE trigramme = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      User_id = rs("trigramme").Value
      User_Name = rs("NOM").Value
      DoCmd.OpenForm "ModèleV13", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "connexion"
      User_id = rs("trigramme").Value
      User_Name = rs("NOM").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és", vbCritical
    DoCmd.Quit
    End If
    End Sub
    User_Name et User_Id avant de fermer mon formulaire de connexion!

    Mille Mercis!

    Maxime

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

Discussions similaires

  1. [AC-2010] Inserer un texte et des variables dans une zone de texte
    Par acpsc dans le forum Access
    Réponses: 5
    Dernier message: 05/05/2013, 18h39
  2. [AC-2007] Afficher une variable globale dans une zone de texte dans un état
    Par spawny161184 dans le forum IHM
    Réponses: 2
    Dernier message: 25/10/2011, 23h48
  3. affichage d'une variable dans une zone de text
    Par mayssaMM dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/05/2011, 03h05
  4. Afficher le contenu d'une variable Javascript dans une zone de texte
    Par Corlo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/10/2007, 15h18
  5. variable User_id dans une zone de texte d'un état
    Par greg64 dans le forum Sécurité
    Réponses: 7
    Dernier message: 17/07/2006, 17h32

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