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

VB.NET Discussion :

Récupérer des enregistrements dans une listview en passant par DAO


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut Récupérer des enregistrements dans une listview en passant par DAO
    Bonjour à vous
    Dans mon apprentissage du VB. Net , je me heurte à un problème un peu plus simple mais embêtant.
    En effet, je récupère les enregistrements d'une table par la méthode classique de Access en passant par DAO comme en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Requête="Syntaxe SQL"
    RS=dB.OpenRecordSet(Requête)
    Dim Lv as New ListViewItem
    RS.movefirst
    While not Rs.EOF
    With Lv
    Lv.text=RS.fields("colonne1").value
    Lv.SubItem.add(Rs.fields("colonne2").value)
    RS.moveNext
    End with
    End while
    Listview1.items.add(Lv)
    Note: j'ai recopié ce code, vu que je suis au travail. Donc il peut avoir une petite erreur de syntaxe.

    Dans la ListView, j'obtiens un chargement mais uniquement la première ligne.

    Merci de m'aider

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Peut-être qu'en affectant la ListView à l'intérieur de la boucle While, tu obtiendras tous les enregistrements ...

    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
     Requête="Syntaxe SQL"
    RS=dB.OpenRecordSet(Requête)
     
    While not Rs.EOF
     
    Dim Lv as New ListViewItem
     
    With Lv
       Lv.text=RS.fields("colonne1").value
       Lv.SubItem.add(Rs.fields("colonne2").value)
    End with
     
    Listview1.items.add(Lv)
     
    End while
    !!! J'ai pas testé ....


  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Merci à vous mais Ça ne passe pas. Ça génère une erreur.
    Je l'ai déjà essayé à plusieurs reprises.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Quelle erreur, à quelle ligne ?

    ...

    Voici l'exemple que je reprends de ma doc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim UneLigne As ListViewItem			' Déclaration d’une variable de type ListViewItem
    UneLigne = MaListView.Items.Add("Info 1")	' Création de la ligne avec la donnée de colonne 0
    UneLigne.SubItems.Add("Sous info 1 de 1")	' Crée un sous élément avec la donnée de colonne 1 
    UneLigne.SubItems.Add("Sous info 2 de 1")	' Crée un sous élément avec la donnée de colonne 2
    Donc dans ton code, ça doit être (il faut donner le nom de la ListView):
    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
     Requête="Syntaxe SQL"
    RS=dB.OpenRecordSet(Requête)
     
    While not Rs.EOF
     
    Dim Lv as ListViewItem ' !!!!!! PAS DE NEW
     
    With Lv
       Lv=LeNomDeLaListView.Items.Add(RS.fields("colonne1").value)
       Lv.SubItem.add(Rs.fields("colonne2").value)
    End with
     
    Listview1.items.add(Lv)
     
    End while
    ...

  5. #5
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    En image le code
    L'erreur en image aussi
    Images attachées Images attachées  

  6. #6
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Nom : IMG_20231211_123145_413.jpg
Affichages : 103
Taille : 1,86 Mo

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bon sang, DAO, c'est loin ...

    Mais si cette erreur vient de la ligne ListView1.Items.Add(Lst), il faudrait la permuter avec la ligne RcSet.MoveNext().

    Si ça ne marche pas, je ferai des tests, mais pas avant la soirée ...

  8. #8
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Merci bien... Je vais aussi chercher de mon côté.

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Oui bien sûr, mais as-tu essayer d'intervertir les 2 lignes ?

  10. #10
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Oui et toujours le même message

  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Ok, je me fais un programme de test et je te dirai ...

  12. #12
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 009
    Par défaut
    Ce serait plus simple si tu copiais le code au lieu de mettre des impressions d'écrans !

    Ton message d'erreur est logique puisque tu ajoute effectivement deux fois le même item.
    Une fois sur la ligne que j'ai entouré en vert et qu'il faut conserver.
    Une seconde fois sur la ligne que j'ai barré en rouge et qu'il faut enlever.
    Il faut garder le MoveNext qui permet de parcourir l'élément suivant renvoyé par ta requête
    Nom : LST.png
Affichages : 102
Taille : 891,3 Ko

  13. #13
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bien vu Popo !

    Voici ce que devrait 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
    22
    23
    '... affectation du RcSet
    '...
    '... puis :
     
     
    RcSet.MoveFirst
    While Not RcSet.EOF
     
                Dim Lv As ListViewItem ' !!!!!! PAS DE NEW
     
                Lv = ListView1.Items.Add(RS.fields("Nom").value)
     
                With Lv
     
                    .SubItems.Add(Rs.fields("Classe").value)
                    .SubItems.Add(Rs.fields("Age").value)
                    .SubItems.Add(Rs.fields("Domicile").value)
     
                End With
     
           RcSet.MoveNext
     
    End While
    Révise la syntaxe, je n'ai pas pu tester avec un DAOP mais avec un autre type d'objet. Le code ci-dessus n'est donc pas un copié-collé mais une retranscription adaptée.

    ....

Discussions similaires

  1. Récupérer des informations dans une ListView (par exemple un ID)
    Par Berlo56 dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 06/06/2014, 08h46
  2. Récupérer des controles dans une listview imbriquée
    Par ERICLEUN dans le forum ASP.NET
    Réponses: 6
    Dernier message: 12/11/2012, 18h26
  3. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11
  4. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37

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