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 :

[VB6] combobox.itemvalue ?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Par défaut [VB6] combobox.itemvalue ?
    Bonjour,

    je débute en visual basic et j'ai un petit soucis avec l'utilisation des combobox en vb6.

    au load de ma form, je remplie mon combobox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sSql = "select responsableAction from action"
    oDb.SqlExec sSql, oRs
    Do Until oRs.EOF
      cbRespAction.AddItem (oRs.Fields(0))
      oRs.MoveNext
    Loop
    je fait ensuite une requête sur une autre table pour récupérer les informations d'une fiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sSql = "select * from fiche where id_fiche = " & i
    oDb.SqlExec sSql, oRs
    cette requête me renvoie un RecordSet contenant un champ remplie grace au même combobox que mon premier (cbRespAction).

    Je cherche a ce qu'a l'affichage de la form, l'item présélectionner dans mon combobox soit le même que celui que m'a renvoyer ma requête. Ors je n'arrive pas a trouver comment lister un par un les éléments d'un combobox, pour les comparer un a un avec le champs de mon RecordSet ...

    Ça doit ressembler a quelque chose comme ça (selon ma logique de débutant hein :p) .... mais 'combobox.item.value' n'existe apparemment pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = 0 to cbRespAction.listCount
      If cbRespAction.item(i).value = oRs.Fields(9) Then
        cbRespaction.ListIndex = i
      End If
    Next i

    Merci d'avance.
    KilKennY

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour,

    D'abord dans ta boucle tu dois faire Liscount - 1
    (car liscount te donnes le nombre d'items )
    ensuite dans ton code
    ,remplace ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If cbRespAction.list(i) = oRs.Fields(9) Then

    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    bonjour,

    - l'indice du contenu d'un combo box commence à 0 (i de 0 à ListCount -1) comme l'a mentionné par iclic
    - une fois ta correspondance trouvée, sort de la boucle pour éviter de traiter la suite de la liste inutilement avec un Exit For

    voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 0 To cbRespaction.ListCount - 1
        If cbRespaction.List(i) = oRs.Fields(9) Then
            cbRespaction.ListIndex = i
            Exit For
        End If
    Next i
    j'utilise ce code pour des combo boxes ayant la propriété Style à 2 car la propriété Text est alors en lecture seule...

    bonne continuation

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Par défaut
    Super ça fonctionne nickel

    j'ignorai que les items d'un combobox étaient numérotés de 0 a listcount - 1 ...

    et c'est surtout la propriété combobox.list(i) qui me faisait défaut.

    Merci pour tout.

  5. #5
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    2 petites remarques :

    - Si ton problème est résolu, merci de cliquer sur le bouton Résolu en bas de cette page.
    - Les propriétés que tu ne connaissais pas pouvaient facilement être trouvée dans l'aide de VB, penses y pour la prochaine fois

Discussions similaires

  1. VB6, Combobox ne possède pas la propriété Sorted
    Par Samyy17 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/11/2011, 11h38
  2. [VB6]Combobox et DisplayMember
    Par misa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/02/2010, 19h14
  3. [VB6] ComboBox autocompletion
    Par ninjabui dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 05/07/2007, 11h40
  4. [VB6]Combobox: Combo de choix de couleurs
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 16/05/2007, 15h19
  5. [VB6] ComboBox 6
    Par badrel dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 31/05/2006, 11h59

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