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

VBA Access Discussion :

[VBA] Selected et requery sur zone de liste


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 52
    Points
    52
    Par défaut [VBA] Selected et requery sur zone de liste
    Bonjour,

    Voici mon probleme avec l'utilisation de la propriété selected sur une zone de liste.

    Avec un bouton j'INSERT (1 seul enregistrement) la table affichée dans une zone de liste (lstMaListe). Un requery me permet de mettre à jour la liste. Jusque la pas de probleme.

    Ensuite je positionne le selecteur de la liste sur mon nouvel enregistrement => parcours de la liste et affectation de lstMaListe.selected à True lorsque je le trouve. Toujours pas de soucis.

    Ca devient amusant quand je fait un second requery sur ma liste (apres un UPDATE sur mon nouvel enregistrement mais ca me fait pareil si je le fait pas) car la selection va se placer sur la ligne qui était selectionnée avant de commencer la procédure.

    en gros le fonctionnement :
    Etat de depart de la liste : 3 lignes (de 0 à 2), ligne 2 selectionnée
    Evenement : bouton de création d'un enregistrement + requery + placement sur la ligne 0
    Etat de la liste : 4 lignes (de 0 à 3), ligne 0 selectionnée
    Evenement : requery
    Etat de la liste : 4 lignes (de 0 à 3), ligne 2 selectionnée <----- mais pourquoi donc ?

    J'espere que j'ai été clair

    Merci d'avance de vos aides.

    PS : Le code
    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 cmdMonBouton_Click()
        'Déclaration
        Dim ......
     
        'Création de l'enregistrement
        DoCmd.RunSQL MaRequetDeCreation
     
        lstMaListe.requery
     
        'Boucle de recherche de ma nouvelle ligne dans lstMaListe     
        For b = 1 To lstMaListe.ListCount - 1
            If lstListe.ItemData(b) = numauto Then
                lstMaListe.Selected(b) = True
            Else
                lstMaListe.Selected(b) = False
            End If
        Next
     
        lstMaListe.requery
    End Sub

  2. #2
    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 768
    Points
    7 768
    Par défaut
    Bonjour,

    je pense que c'est parce que la propriété Value de la liste n'est pas mise à jour.
    Elle conserve son ancienne valeur.

    Essaie en attribuant Null à la valeur de la zone de liste avant d'entrer dans la boucle:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        'Boucle de recherche de ma nouvelle ligne dans lstMaListe  
        lstListe.Value = Null
        For b = 1 To lstMaListe.ListCount - 1
            If lstListe.ItemData(b) = numauto Then
                lstMaListe.Selected(b) = True
            Else
                lstMaListe.Selected(b) = False
            End If
        Next
    ou plus simplement si il n'y a pas de doublons dans la colonne liée:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
        lstListe.Value = numauto
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 52
    Points
    52
    Par défaut
    Le null ne marche pas mais l'affectation direct de value par ma clef oui. J'avoue ne pas bien comprendre pourquoi mais je vais m'en contenter pour l'instant.

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/03/2011, 19h05
  2. Réponses: 1
    Dernier message: 04/10/2008, 14h54
  3. Selection résultat de requête sur zone de liste déroulante
    Par Boulken dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/03/2008, 13h04
  4. Réponses: 3
    Dernier message: 26/04/2007, 13h49
  5. Evènement sur zone de liste
    Par Mout85 dans le forum IHM
    Réponses: 3
    Dernier message: 20/06/2005, 11h44

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