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 de valeurs dans une zone de liste


Sujet :

Access

  1. #1
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut Récup de valeurs dans une zone de liste
    Bonjour,
    j'ai créé une zone de liste remplie avec une requête. Cette zone de liste propose une sélection multiple afin de pouvoir faire des tirages des enregistrements sélectionnés.
    Pour cela, je pensais passer les lignes une à une, vérifier si elles étaient sélectionnées. Si oui, récupérer la valeur dans la 1e colonne pour créer ma condition WHERE pour créer l'état à imprimer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To nbrListe - 1
          If Me.lstResultats.Selected(i) = True Then
              conditionWHERE = conditionWHERE & " AND [DOSSIER].[id_dossier] = " & Me.lstResultats.Column(0)
          End If
    Next i
    Sauf que "Me.lstResultats.Column(0)" ne prend que la valeur du 1er enregistrement sélectionné.
    C'est embêtant. Je pensais qu'en parcourant la liste comme ça, je mettais le focus sur la ligne et qu'il prendrai les valeurs de la ligne en cours.
    Comment on fait pour mettre le focus sur la ligne?

  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 017
    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 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    utilise la propriété itemselected()

    il y a de très bon exemple dans l'aide ACCESS.


    Cordialement,

  3. #3
    Membre régulier

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Points : 97
    Points
    97
    Par défaut
    Merci Loufad.
    Ca marche nicouel!

  4. #4
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Oops, c'est résolu mais je le post quand même

    Salut Miss Ti,

    Avec une zone de liste à sélection multiple (simple ou étendue), voici comment faire pour parcourrir les éléments (lignes) de la liste:
    1. on vérifie si au moins une ligne est sélectionnée
    2. on passe en revue chaque ligne de la première à la dernière
    3. on vérifie si la ligne courante est sélectionnée, et si tel est le cas, recueillir la valeur de la colonne désirée
    ATTENTION: il ne s'agit pas de mettre le focus sur la ligne suivante!

    Voici un exemple:
    Je pose Lst est le nom de la zone de liste, i est une variable de parcours, ValeurLue est une liste des valeurs recueillies
    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
     
       Dim i As Long, ValeurLue As String, conditionWHERE As String
     
       '(1)
       If Me.Lst.ItemSelected.Count = 0 Then Exit Sub 'Si aucune sélection n'a été faite, terminer la procédure
     
       '(2)
       For i=0 To Me.Lst.ListCount-1 'Le premier élément d'une liste porte l'index 0 et le dernier l'index nombre d'élément-1
     
          '(3)
          If Me.Lst.Selected(i) Then 'Si la ligne en cours est sélectionnée
              ValeurLue = ValeurLue & ", " & Me.Lst.Column(0,i) 'Recueillir la valeur de la première colonne de la ligne i
          End If
     
       Next
     
       ValeurLue = Mid(ValeurLue, 3) 'Enlever la chaîne ", " au début
       conditionWHERE = conditionWHERE " AND [DOSSIER].[id_dossier] In (" & ValeurLue & ")"
    Quelques précisions:
    Si par exemple, on veut comparer les valeurs suivantes (1,3,4 et 6) au champ id_dossier, on peut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id_dossier=1 OR id_dossier=3 OR id_dossier=4 OR id_dossier=6
    alors qu'une autre moyen moins fastidieuse existe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    id_dossier In (1, 3, 4, 6)
    Je ne sais pas si tu as compris, mais essayes.

    A+

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    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 017
    Points : 24 547
    Points
    24 547
    Par défaut
    quel matoutous ? Ceux de Guyane ou ceux de la Maatinique ?

    Bizarre je te vois à coté de chez moi (à Castanet) ?

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

Discussions similaires

  1. liste de valeurs dans une zone de liste
    Par christy1 dans le forum Modélisation
    Réponses: 1
    Dernier message: 23/12/2011, 14h48
  2. Réponses: 3
    Dernier message: 31/07/2010, 21h58
  3. [AC-2007] récupération de valeur dans une zone de liste
    Par Kawabaumga dans le forum IHM
    Réponses: 0
    Dernier message: 31/05/2010, 14h25
  4. Enlever une valeur dans une zone de liste
    Par léti07 dans le forum Access
    Réponses: 20
    Dernier message: 23/09/2006, 06h19
  5. Réponses: 2
    Dernier message: 12/04/2006, 10h00

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