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 6 et antérieur Discussion :

filtrage dans une listbox - VB6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut filtrage dans une listbox - VB6
    Bonsoir à tous,

    je suis un débutant en VB6 je suis entrain de creer une petite appli pour faire des extractions d'ecritures...

    J'ai dans mon form 2 Listbox : Une contient tout les codes société et l'autre
    les comptes qui sont rattachés a ces sociétés.

    Comment pourrais-je faire pour que lorsque je selectionne une société, seul les comptes qui lui sont rattachés apparaissent dans ma seconde Listbox?

    voici le code qui me permet de remplir mes listbox :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Form_Load()
     
        Dim xu2 As New CsoXU.XU24
        Dim connexion As New ADODB.Connection
        connexion.ConnectionString = xu2.RechercheConnectionString
        connexion.Open
     
        Dim reccmp As New ADODB.Recordset
        Dim recacc As New ADODB.Recordset
     
        Set reccmp = New ADODB.Recordset
        Set reccmp = New ADODB.Recordset
     
        reccmp.Open "select cmp_code from companies order by cmp_code", connexion, adOpenForwardOnly, adLockReadOnly, adCmdText
     
         Do While Not reccmp.EOF
            Me.List1.AddItem (reccmp.Fields(0).Value)
            reccmp.MoveNext
         Loop
     
        reccmp.Close
     
        recacc.Open "select acc_code from accounts order by acc_code", connexion, adOpenForwardOnly, adLockReadOnly, adCmdText
     
         Do While Not recacc.EOF
            Me.List2.AddItem (recacc.Fields(0).Value)
            recacc.MoveNext
         Loop
        recacc.Close
     
     
    End Sub
    J' essaye de trouver la solution depuis plus d'heure mais pas de soluce !!!!

    merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Voire avec F1 la clause Where
    Exemple
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Option Explicit
    Dim connexion As New ADODB.Connection
    Dim reccmp As New ADODB.Recordset
    'Dim recacc As New ADODB.Recordset
    Dim xu2 As New CsoXU.XU24
     
    Private Sub Form_Load()
    'Set reccmp = New ADODB.Recordset 'inutile puisque deja renseigné et declaré
    'Set reccmp = New ADODB.Recordset 'inutile puisque deja renseigné et declaré
    connexion.ConnectionString = xu2.RechercheConnectionString
    connexion.Open: DoEvents
    reccmp.Open "select cmp_code from companies order by cmp_code", connexion, adOpenForwardOnly, adLockReadOnly, adCmdText
    List1.Clear
    Do While Not reccmp.EOF
     List1.AddItem (reccmp.Fields(0).Value)
     reccmp.MoveNext: DoEvents
    Loop
    reccmp.Close
    'pour initialiser et remplir le List2 lors de l'ouverture
    'declanche la procedure Sub List1_Click()
    List1.List(List1.ListIndex) = 0
    End Sub
    Private Sub List1_Click()
    'un choix a ete fait par l'utilisateur (ou initialisation dût au Form_Load())
    List2.Clear
    reccmp.Open "select acc_code from accounts Where cmp_code  = " & List1.List(List1.ListIndex) & " order by acc_code", connexion, adOpenForwardOnly, adLockReadOnly, adCmdText
    Do While Not reccmp.EOF
       List2.AddItem (reccmp.Fields(0).Value)
       reccmp.MoveNext: DoEvents
    Loop
    reccmp.Close
    List2.List(List2.ListIndex) = 0
    End Sub
    Comme tu peux voire, un seul ADODB.Recordset est utilisé, j'ai REMER recacc , et réutilisé reccmp pour remplir le List2

    Motif de l'edit, j'ai des doutes sur le suivi de tes posts
    captainamerica75, Inscrit le vendredi 06 janvier 2006, Total message: 61, discussions ouvertes: 24, Nbr.de TAGs utilisés: 7, moyenne: 29/100, ma partitipation jusqua ce post: 1
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    salut a toi,

    merci pour ta soluce mais il me met un message :
    " Erreur d'execution -2147217900
    'CAS" : Nom de colonne incorrect

    Qu'est ce que cela veut dire?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    " Erreur d'execution -2147217900
    'CAS" : Nom de colonne incorrect
    Dans quelle procedure, Form_Load() ou List1_Click(), à quelle ligne ?

    Que ce soit dans l'une ou l'autre, l'erreur indiquée signifie que le champs que l'on utilise n'existe pas dans la table qui vient d'être ouverte, donc cela doit être à la ligne List1.AddItem (reccmp.Fields(0).Value) de Form_Load() ou à la ligne List2.AddItem (reccmp.Fields(0).Value) de List1_Click().
    A moins que le champs acc_code , n'existe pas dans la table accounts, et là je ne vois pas comment tu pourras recuperer les comptes qui sont rattachés aux codes sociétés.
    Il faut absolument que dans tes 2 tables il y ait un champs commun, dans ton cas ce doit être cmp_code.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    salut Prog,

    Le message est a ce niveau ( cf.ligne en gras):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub List1_Click()
    'un choix a ete fait par l'utilisateur (ou initialisation dût au Form_Load())
    List2.Clear
    reccmp.Open "select acc_code from accounts Where cmp_code  = " & List1.List(List1.ListIndex) & " order by acc_code", connexion, adOpenForwardOnly, adLockReadOnly, adCmdTextDo While Not reccmp.EOF
       List2.AddItem (reccmp.Fields(0).Value)
       reccmp.MoveNext: DoEvents
    Loop
    reccmp.Close
    List2.List(List2.ListIndex) = 0
    End Sub
    J'ai bien un champs cmp_code dans ma table accounts pourtant...

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Problème de type : tu concatènes un String ("SELECT...") et un numérique (List1.List(List1.ListIndex))

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

Discussions similaires

  1. [VB6]Ecriture dans une ListBox à partir d'une FileListBox
    Par Joffrey91 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/04/2009, 20h51
  2. [VB6]Lire le contenu d'un fichier dans une listbox
    Par gizmorambo dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 11/04/2006, 12h51
  3. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/07/2004, 11h38
  4. [WIN32]tabulation dans une listbox
    Par stoluup dans le forum MFC
    Réponses: 2
    Dernier message: 09/06/2004, 10h11
  5. Icône a coté du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/12/2003, 02h25

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