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 :

Préselection d'une zone de liste multiple simple [AC-2000]


Sujet :

IHM

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut Préselection d'une zone de liste multiple simple
    Bonjour,

    Je cherche, à l'ouverture d'un formulaire indépendant, à présélectionner une zone de liste en fonction d'enregistrements sélectionnés dans une table.

    La propriété Sélection multiple de la zone de liste est à simple.

    Quoi qu'il en soit, rien n'est présélectionné !
    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
    Private Sub Form_Open(Cancel As Integer)
      Dim oDb As DAO.Database
      Dim oRst As DAO.Recordset
      Dim i As Integer
      Set oDb = CurrentDb
      Set oRst = oDb.OpenRecordset("SELECT tPRO.* FROM tPRO WHERE tPRO.proris=" & CLng(Me.OpenArgs) & ";", dbOpenDynaset)
      While Not oRst.EOF
        For i = 0 To lstEPI.ListCount - 1
          If lstEPI.Column(0, i) = oRst!proepi Then
            lstEPI.Selected(i) = True
          Else
            lstEPI.Selected(i) = False
          End If
        Next i
        oRst.MoveNext
      Wend
      oRst.Close
      oDb.Close
      Set oRst = Nothing
      Set oDb = Nothing
    End Sub
    Avez-vous une piste ?

  2. #2
    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
    Gabout

    Voici une discussion qui pourrait peut-être te donner une piste de réflexion

    Parcours d'une liste à sélection multiple

    Bonne continuation

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    J'ai l'impression que la partie qui boucle sur les enregistrements du recordset, désélectionne ce qui a été sélectionné dans les boucles précédentes.

    Je ferai cela en deux fois.
    - Effacement de la sélection
    - Sélection des éléments se trouvant dans le recordset
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      For i = 0 To lstEPI.ListCount - 1
        lstEPI.Selected(i) = False
      Next i
     
      While Not oRst.EOF
        For i = 0 To lstEPI.ListCount - 1
          If lstEPI.Column(0, i) = oRst!proepi Then
             lstEPI.Selected(i) = True
             Exit For
          End If
        Next i
        oRst.MoveNext
      Wend
    A+

  4. #4
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Jeannot45 et LedZeppII,

    Voilà ce que j'ai conçu avant de lire vos conseils :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Open(Cancel As Integer)
      Dim i As Integer
      For i = 0 To lstEPI.ListCount - 1
        If DCount("*", "tPRO", "proepi=" & Me.lstEPI.Column(0, i) & " And proris=" & CLng(Me.OpenArgs)) = 0 Then
          lstEPI.Selected(i) = False
        Else
          lstEPI.Selected(i) = True
        End If
      Next i
    End Sub
    Et cela fonctionne très bien.

    Merci de votre aide, à bientôt.

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

Discussions similaires

  1. [AC-2003] Copier la sélection d'une zone de liste multiple vers une autre zone de liste
    Par Florent_45 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/07/2011, 09h21
  2. Surligné dans une zone de liste multiple
    Par Renardo dans le forum IHM
    Réponses: 3
    Dernier message: 13/12/2008, 11h03
  3. Réponses: 2
    Dernier message: 29/07/2008, 18h47
  4. supprimer dans une zone de liste à multiple selection
    Par vavou dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/04/2008, 13h54
  5. requête à partir d'une zone de liste multiple??
    Par chambon.denis dans le forum Access
    Réponses: 5
    Dernier message: 23/01/2006, 10h46

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