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 :

Modifier le Format dans un listBox


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut Modifier le Format dans un listBox
    Bonjour Forum,

    Habituellement j'utilise les listviews pour faire un liste d'item contenant plusieurs colonnes, mais pour des raisons que j'ignore la listview ne fonctionne pas dans un état...

    Je me suis donc tourné vers le contrôle listbox, j'ai trouvé sur internet comment modifier une valeur dans une colonne spécifique d'une ligne spécifique, mais ça ne marche pas l'erreur : membre de méthode ou de données introuvable

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub FormatListbox()
    Dim i As Integer
     
    With Me.Liste40
        For i = 1 To .ListCount
            .List(i, 3) = strFeet(.List(i, 3))
        Next i
    End With
    End Sub
    strfeet est une fonction que j'ai créé qui renvoie une chaine.

    Merci d'avance de votre aide!

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    par curosité, qu'elle est l'utilité d'employer des Zones de listes déroulantes dans un état
    .... car au final, ce contrôle n'affichera qu'une seule valeur

    ... Ou alors quelque chose m'a échappé
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut
    Bonjour Free Access,

    Non le contrôle listbox me permet d'entrer de multiple valeur, dans mon cas il est lié à une requête.

    Comme je le disais habituellement j'utilise des listview, car je ne connais pas beaucoup Access, mais je connais bien VBA, donc j'aime mieux passer par VBA.
    Mais dans mon cas les Listview ne fonctionne pas...

    J'ai donc choisi de ne pas passé par un contrôle ListBox, mais d'insérer la requête directement dans mon État. J'ai donc besoin d'aide!

    J'ai un colonne longueur de type numérique, jaimerais modifier la valeur pour la transformé en champs texte. Exemple 4.2 devient 4' 2''.

    Voici ce que j'ai tenté via le générateur d'expression, mais sans succès:
    Expr1: Remplacer(CChaîne([Longueur]);".";"' ";0;-1;1) & "''"

    Mon idée est de modifier le point (".") par un apostrophe et un espace et d'ajouter 2 apostrophe à la fin.

    Merci de votre aide.

  4. #4
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Mon idée est de modifier le point (".") par un apostrophe et un espace et d'ajouter 2 apostrophe à la fin.
    . . . à oui, ça change d'avec ta première demande .....

    Alors allons-y.....faisons un peu de découpage (ceci est une possibilité...)

    1) Récupérer la position du point (.) dans la chaîne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    point: DansChaîne([longueur];".")
    ex: pour la valeur 4.2 retourne 2

    2) Récupérer la partie gauche de la chaîne située avant le point (.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gauche: Gauche([longueur];[point]-1
    ex: pour la valeur 4.2 retourne 4

    3) Récupérer toute la chaîne située après le point (.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Droite: ExtracChaîne([longueur];DansChaîne([longueur];".")+1)
    ex: pour la valeur 4.2 retourne 2

    4) Au final, on mouline tout cela, pour obtenir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumEnTexte: Gauche([longueur];DansChaîne([longueur];".")-1) & "' " & ExtracChaîne([longueur];DansChaîne([longueur];",")+1) & "''"
    ex: pour la valeur 4.2 retourne 4' 2''

    ...voila, c'est une possibilité ( en espérant ne pas m'être trompé ...

    ATTENTION:
    - solution valable pour affichage et non pour calcul
    - ne fonctionne que si la donnée comporte une valeur après le point (.)
    (12.45 = OK | 25 = KO )

    ....à adapter.....

    [EDIT]
    ...avant que tu ne demande
    Pour gérer une valeur sans point (.), ajoute une fonction Iif (Vrai/Faux)....
    Tu peux également créer une fonction.....(accessible n'importe ou dans l'application)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function FormatLongueur (longueur As String)
    'Recherche si point (.) existe
    Dim point As Byte
    point = InStr .........
    If point = 0 Then
    longueur = longueur &.......
    Else
    longueur = Left.......
    End if
    FormatLongueur = longueur
    End Function
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

Discussions similaires

  1. modifier un élément dans une listBox
    Par sagesse dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/02/2011, 13h56
  2. [Excel 2000] Format date dans une listbox
    Par Monjarno dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/03/2010, 14h39
  3. [AC-2002] modifier le format de date dans une requête
    Par tom@tom dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/06/2009, 09h36
  4. [E03] - Modifier les valeurs affichées dans une listbox
    Par couistelle dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/03/2009, 13h46
  5. Réponses: 2
    Dernier message: 29/10/2008, 19h13

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