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 :

[Etat] Condition de visibilité d'un smiley dépendant d'une valeur d'un champs


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut [Etat] Condition de visibilité d'un smiley dépendant d'une valeur d'un champs
    Bonjour,

    J'ai lu quelques posts se rapprochant de ce que je cherche mais rien que j'arrive à exploiter. En désespoir de cause, je me suis inscrit chez vous !

    Je fais un état de reporting où l'objectif est de montrer le trend d'un indicateur. Pour cela, je dois à la demande de l'utilisateur, mettre un smiley souriant si la valeur du champs "Accomplissement" est supérieur à 1, et un smiley pas content si la veleur du champs "Accomplissement" est inférieur à 1.

    Je me suis orienté de la manière suivante : j'ai chargé les deux images de mes smiley dans mon état à côté de l'étiquette "Accomplissement".

    J'aimerai donc mettre une condition "Visible" au smiley "content" si la valeur de "Accomplissement" est supérieur à 1.

    Par contre, je n'y arrive pas car je ne suis pas codeur... à la base, je gère bien les fonctionnalité ACCESS mais pas forcement le VBA.

    Je suis donc partis sur un truc qui doit être bourré d'erreur mais qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Me![Accomplissement] > 1 Then
         Me![content].Visible = True
    Else
         Me![content].Visible = False
    End If
    End Sub
    Vous vous en doutez, ca ne fonctionne pas...

    Je pense qu'il me manque la première ligne de Sub mais je ne sais pas quoi y mettre car je ne vois pas quel procédure évènementiel je pourrais y attacher....

    Merci beaucoup pour votre aide ! Et plus encore pour le temps que vous y passerez !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 603
    Points
    24 603
    Par défaut
    Bonjour et bienvenue !

    Tu dois le mettre dans 2 événements au moins :

    Celui qui va régir l'affichage lorsqu'on change d'enregistrement, et celui qui va le changer lorsqu'on modifie la valeur (Accomplissement).

    Le premier est Sur activation du formulaire.
    L'autre est Après MAJ du controle Accomplissement.

    Sinon ton code (du If à Endif) semble correct.

    Cordialement,

    Oups !

    ça c'est pour un formulaire...

    Pour un état tout se passe au même endroit :

    L'événement Sur formatage.

    au moins tu as les 2 méthodes.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Tu parles de acformat ?

    Si je met un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub AcFormatConditionOperator_Content()
    If Me![Accomplissement] > 1 Then
         Me![Content].Visible = True
    Else
         Me![Content].Visible = False
    End If
    End Sub
    Cela ne marche pas... de même si je mets "acFormView" ou tout simplement "Format"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Format_Content()
    If Me![Accomplissement] > 1 Then
         Me![Content].Visible = True
    Else
         Me![Content].Visible = False
    End If
    End Sub

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Bonjour,

    Tu places ta condition dans l'évènement au formatge de la section "Détail"
    de ton état

    A+

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci !

    J'ai trouvé le champs dans les proprités de la rupture "détail". Ca a créé un code basic dans lequel j'ai ajouté ma touche, mais ca ne fonctionne toujours pas !!! Je suis en train de m'arracher les cheuveux. Tout cela parce que ce client de m* veut des smiley

    Bref ca donne cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    If Me![Accomplissement] < 1 Then
         Me![Content].Visible = True
    Else
         Me![Content].Visible = False
    End If
    End Sub
    Il me semble qu'il doit manquer un "Content" quelque part... mais si vous avez des yeux avertis à me preter, je me les grefferais bien !

    Est-ce qu'il faut indiqué "Option Explicit" en deuxième ligne d'une manière générale ?

    Merci en tous cas

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 603
    Points
    24 603
    Par défaut
    Explicit c'est pour t'obliger à déclarer toutes les variables avant de les utiliser, moi je le mets, je sais ou je vais comme ça...

    pourquoi tu mets de ! et des crochets partout ?

    utilise le . et sers-toi de la liste d'objets/méthodes/propriété au moins tu es sur de ne pas te planter dans les noms de controles.

    C'est quoi qui ne fonctionne pas ?

    c'est toujours affiché, c'est jamais affiché ?

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    C'est toujours affiché : j'ai les deux cas de tests (> 1 et < 1) pour voir le résultat de l'action à chaque modification, mais rien ne change.

    Ok merci pour explicite, je comprends mieux. Pour les points et les crochets, j'avoue ne pas avoir fait attention. J'ai copié cela d'une autre discussion du forum où le code me semblait adapté.

    Je y a quelques autres discussion sur "visible" mais je n'arrive pas à en tirer quelque chose.

    Je vais faire une copie d'écran, ca sera plus clair
    Images attachées Images attachées  

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 603
    Points
    24 603
    Par défaut
    >1 et <1 cela veut dire que tu n'a jamais =1. Donc ce qui est =1 sera affiché comme le précédent (visible ou pas).

    Au besoin mets un trace avant et pendant ton test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debug.print me.accomplissement
    Debug.print me.content.visible
    Utilise ces 2 lignes que tu place avant ton test et dans chaque cas de traitement.

    Pour moi le code est bon. Content c'est bien le nom du controle image qui contient le gentil smiley du sympathique client ?

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 603
    Points
    24 603
    Par défaut
    Il se peut que le problème vienne du %, c'est pour cela qu'avec une trace tu verra dans la fenêtre debug si tu testes la bonne valeur.

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Les débug ne sont pas pris en compte même quand je crée une erreur volontaire dans le code.

    J'en conclue logiquement que je ne fais même pas appel au code, donc c'est pour cela que je n'aurais pas de résultat. Il doit donc y avoir un problème en amont d'appel du code...

    Zut, on fait des progrès mais il manque à chaque fois un petit truc. C'est vexant.

    Est-ce que ca peut venir de la source de contrôle qui pourrait être mal renseignée ? Pour les propriétés du smiley j'ai mis "Accomplissement" mais pour les propriété du "détail", je n'en ai pas. Seulement la procédure évenementielle.

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 603
    Points
    24 603
    Par défaut
    Le debug et les erreurs c'est 2 choses différentes. Si tu mets ces 2 lignes il t'affichera forcément le résultat dans la zone Exécution de l'éditeur VB.

    Par curiosité dans la propriété Sur formatage (ou Au formatage, je fais ça de tête...) il y a bien marqué [Procédure Evénemetielle] ?

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Oui Ca tout de même, ca fonctionne bien. Je vais continuer à chercher un peu. Je te donne des news dès que j'ai du neuf

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Tarja Voir le message
    Oui Ca tout de même, ca fonctionne bien. Je vais continuer à chercher un peu. Je te donne des news dès que j'ai du neuf
    Qu'est ce qui fonctionne? Le Debug ou l'affichage?

    1. Tu peux mettre aussi des messages pour voir si tu rentres bien dans ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
         EntreTest="Non testé."
     
         msgbox "Entrée "& EntreTest
         If Me![Accomplissement] > 1 Then
              EntreTest="Bien Joué "
         Else
              EntreTest= " Pas Bien joué"
         End If
     
          msgbox EntreTest
    Le message final te dira si le test est fait ou non

    2. Si tu as deux contrôles images il faut compléter l'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If Me![Accomplissement] < 1 Then
         Me![Content].Visible = True
         Me![Content2].Visible = False
    Else
         Me![Content].Visible = False
         Me![Content2].Visible = true
    End If

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/03/2014, 09h55
  2. Image dépendante de la valeur d'un champ
    Par Alien_psy dans le forum IHM
    Réponses: 4
    Dernier message: 30/01/2013, 14h43
  3. Extraire une valeur d'un champ text avec condition
    Par yoyo-tns dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 03/12/2012, 23h05
  4. condition de visibilité dans un etat
    Par froutloops62 dans le forum IHM
    Réponses: 1
    Dernier message: 10/07/2007, 19h45
  5. Afficher un etat pour une valeur d'un champ
    Par merilith dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 17h45

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