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 :

Récupérer une variable temporaire pour modifier la légende d'un contrôle onglet [AC-2010]


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut Récupérer une variable temporaire pour modifier la légende d'un contrôle onglet
    Bonjour à tous,

    J'utilise régulièrement une variable temporaire pour beaucoup de petites choses. Ici, j'aurai voulu faciliter la vue d'un contrôle de navigation en remplaçant le mot "mes dossiers" par le nom de l'utilisateur. J'ai essayé différentes formules mais cela me semble impossible. Quelqu'un a déjà trouvé ?

    Je récupère une valeur (USER) que je stocke. Celui va alimenter différentes requêtes. L'utilisateur peut alors travailler soit dans un onglet général (vue globale de tous les dossiers) ou soit dans son onglet (Mes dossiers) ou la requête est paramétrée sur la variable temporaire USER.

    Au plaisir de vous lire...

    Petitchris

  2. #2
    Modérateur

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

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

    Si tu onglet est un formulaire, logiquement c'est quelque chose comme

    dans l'événement de chargement probablement.

    Si c'est un onglet dans un contrôle Tab, cela devrait ressembler à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.TonControlTab.Pages(NumPage).Caption=USER
    Attention le comptage des onglets commence à 0.

    Et où me. est le formulaire en cours.

    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Bonjour Marot_R,

    Merci pour la rapidité de ta réponse.

    Cela marche, j'ai simplement ajouté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Load()
    Me.BoutonNavigation35.Caption = TempVars("USERID").Value
    End Sub

    L'onglet reprend bien la valeur mais j'ai un autre prob. l'ID est un chiffre qui correspond à un nom dans une liste. Dans le reste de mes formulaires, j'utilise une liste déroulante ou je travaille sur la première colonne pour l'id mais je modifie le format en 0 cm et 5 cm pour n'afficher que le nom.



    Est-ce je peux en vba lui dire d'aller rechercher la valeur correspondante ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    L'onglet reprend bien la valeur mais j'ai un autre prob. l'ID est un chiffre qui correspond à un nom dans une liste. Dans le reste de mes formulaires, j'utilise une liste déroulante ou je travaille sur la première colonne pour l'id mais je modifie le format en 0 cm et 5 cm pour n'afficher que le nom.

    Est-ce je peux en vba lui dire d'aller rechercher la valeur correspondante ?
    Normalement la valeur de ta liste déroulante est la colonne indiquée dans la propriété "Colonne liée". Donc la modification du format d'affichage des données de tes listes déroulantes ne devrait aps avoir d'impact.

    Cordialement.

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Bonjour Madefemere,

    La colonne liée de ma liste déroulante est bien l'ID qui est un nombre. Quand je crée ma variable temporaire IDUSER, la valeur numérique (clef numérique) est attribuée.

    J'ai toujours conçu mes listes déroulantes de cette façon à savoir une table avec un champ id numérique et les autres champs. Ensuite j'affiche la colonne qui correspond en travaillant sur le format. Je pensais que c'était le meilleur moyen pour économiser la place dans les bases données. Je croyais que c'était mieux d'indiquer le chiffre 1 qui correspond à Monsieur Dupont que d'indique en entier DUPONT. J'imaginais aussi qu'un tri numérique était plus rapide qu'un tri alphabétique.

    Si mon raisonnement ne tient pas la route, je veux bien ton aide pour penser autrement :-)

    L'idée était donc de convertir le nombre qui est généré par "caption" et de récupérer la valeur du deuxième champ si tu mes suis. (Champ1= ID, Champ2=Nom,...)

    Merci d'avance.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    Pour faire référence aux autres champs (colonnes) d'une liste déroulante, tu a sa propriété Column(i) où i indique l'index de la colonne et commence par 0.
    Si ta zone de liste se nomme zdlTartempion et a 2 valeurs : Id et Nom, pour faire référence au nom, tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zdlTartempion.Column(1)
    Cordialement.

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    J'ai bien compris mais je pense que ce n'est pas possible ici.

    J'ouvre un formulaire qui invite l'utilisateur a encodé son id et son mot de passe. C'est à ce moment que je récupère l'ID de la liste déroulante dans la variable temporaire. Ensuite le formulaire se referme et ouvre le formulaire de navigation avec les différents onglets. Toutes les requêtes sont déjà impactées car elles sont basées sur la variable temporaire. A ce moment, il n'y a plus de liste déroulante.

    L'onglet avec la valeur est par contre déjà visible mais il récupère la valeur numérique de l'id. Est-ce que je peux ajouter quelque chose à la propriété "caption" pour aller rechercher la valeur équivalente directement dans la table ?

  8. #8
    Modérateur

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

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

    Je pense que quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.BoutonNavigation35.Caption = DFirst("TonCahmpNom", "TaTableDeNom"; "[TonChampID]=" & TempVars("USERID").Value)
    Devrait correspondre à ton besoin.

    Cela va aller chercher le nom qui correspond à l'identifiant dans la table de référence.

    A+

  9. #9
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Bonjour Marot_r,

    Réussi. Encore merci.
    J'ai juste ajouté des crochets en +.

    A la prochaine.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.BoutonNavigation35.Caption = DFirst("[TonCahmpNom]", "[TaTableDeNom]"; "[TonChampID]=" & TempVars("USERID").Value)

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

Discussions similaires

  1. Récupérer une variable php pour jquery
    Par chrozak dans le forum jQuery
    Réponses: 11
    Dernier message: 10/06/2013, 10h22
  2. Astuce pour récupérer une variable modifiée
    Par koopajah dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 12/06/2007, 17h20
  3. Réponses: 2
    Dernier message: 14/04/2006, 18h40
  4. [JSTL] Récupérer une variable JSTL pour l'utiliser avec JSP
    Par pitit777 dans le forum Taglibs
    Réponses: 3
    Dernier message: 28/03/2006, 09h47
  5. Réponses: 10
    Dernier message: 06/03/2006, 23h22

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