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 - problème avec listbox a selection multiple


Sujet :

VB 6 et antérieur

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut VB6 - problème avec listbox a selection multiple
    Bonsoir

    j'ai 2 petits problèmes avec mon code VB dont voici la source :

    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
    Dim VarCmp, VarCpt As String
    Dim i As Integer
    Dim rec As New ADODB.Recordset
     
    Set rec = xu2.VUE_ETAT(Me.ctldate.Value, (VarCmp), (VarCpt))
     
     
    'initialisation de i
    i = 0
     
    For i = 0 To lstcmp.ListCount - 1
     If lstcmp.Selected(i) = True Then
     VarCmp = lstcmp.ItemData(i)
     End If
     Next i
     
     
    For i = 0 To lstacc.ListCount - 1
     If lstacc.Selected(i) = True Then
     VarCpt = lstacc.ItemData(i)
     End If
    Next i
     
     
    End Sub
    Mon premier problème c'est que les valeurs renvoyées dans les requêtes sont erronées :

    résultat d'une requête grace a une petite trace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     AND REC_DATE = {d '2005-12-31'} AND v.CMP_CODE in ('0') AND v.ACC_CODE in ('0') AND "
    "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."
    Comme vous pouvez le voir j'ai en paramètres des '0','1','2',ect... alors que je devrais avoir par exemple 'toto','titi','tata'

    Mon second problème, c'est que je souhaite faire une selection multiple et visiblement il ne me prend qu' une seule et unique valeur....

    Est ce que quelqu'un pourrait m'indiquer là où j'ai fait une erreur car là je desespère....

    Merci pour votre aide !!!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Y'a un truc que je comprends pas, pourquoi

    Set rec = xu2.VUE_ETAT(Me.ctldate.Value, (VarCmp), (VarCpt))

    est appelé alors que les variables ne sont pas initialisées ?

    Deuxièmement pour ta sélection multiple, tu veux dire que tes deux listes là permettent à l'utilisateur de mettre en surbrillance plusieurs lignes en même temps ?

    A ce moment je ne sais pas trop comment tout récupérer proprement, mais ce qui est sûr c'est que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 0 To lstcmp.ListCount - 1
     If lstcmp.Selected(i) = True Then
      VarCmp = lstcmp.ItemData(i)
     End If
    Next i
    Ne récupère qu'une seule ligne :/

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    tu as raison. J'ai corrigé le code ce qui donne maintenant :

    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
    34
    35
    36
    37
    Private Sub Command1_Click()
     
    Dim rec As New ADODB.Recordset
     
     
    'execution de la procédure sub
    'execrec
     
    Dim VarCmp, VarCpt, VarStatut As String
    Dim i, j As Integer
     
     
    'Selection du Statut (Rapprochées, Non Rapprochées, Archivées)
    VarStatut = VarStatut & "'" & (Me.cbxstatut) & "'" & ","
     
    'initialisation de i,j
    i = 0
    j = 0
        For i = 0 To lstcmp.ListCount - 1
        Print Form1.lstcmp.TabIndex
         If lstcmp.Selected(i) = True Then
           VarCmp = "'" & RTrim(Me.lstcmp.Text) & "',"
         End If
        Next i
     
     VarCmp = Left(VarCmp, Len(VarCmp) - 1)
     
        For j = 0 To lstacc.ListCount - 1
         If lstacc.Selected(j) = True Then
           VarCpt = "'" & (Me.lstacc.Text) & "',"
         End If
        Next j
     
     VarCpt = Left(VarCpt, Len(VarCpt) - 1)
     
     
    Set rec = xu2.VUE_ETAT(Me.ctldate.Value, (VarCmp), (VarCpt), (VarStatut))
    Le souci c'est que je ne récupère qu'une seule valeur (la dernière selectionnée).

    J'essaye de trouver pourquoi mais je n' y arrive pas. J'ai vérifié les propriété de mes listbox et elles sont bien en selection multiple...

    D'ou cela peut venir?

    Merci

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 092
    Points : 16 606
    Points
    16 606
    Par défaut
    Il me semble que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           VarCmp = VarCmp & "'" & RTrim(Me.lstcmp.List(i)) & "',"
    devrait aller mieux

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    Cool ca fonctionne !!!!

    Mon seul souci maintenant c'est que j'ai un problème de concatenation de chaines dans ma requête SQL...

    Voici ce qui est retourné dans ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND REC_DATE = {d '2005-12-31'} AND v.CMP_CODE in (''BOU',''CCR',') AND v.ACC_CODE in (''BNPE01',''BNPE01',') AND "
    mes quotes simples sont doublées en faites..

    Merci progT

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par captainamerica75
    Merci progT

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 55
    Points
    55
    Par défaut
    et merci vld44

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    jdisais ça parceque tu as raccourci son pseudo ^^

    Pas de quoi

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

Discussions similaires

  1. [VB6] Problème avec insertion d'icônes dans menu
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/03/2006, 21h38
  2. [VB6] Problème avec la touche 0 dans une MaskEdBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/03/2006, 09h47
  3. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40
  4. [MySQL] Problème avec un champ selected
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/01/2006, 17h01
  5. Réponses: 3
    Dernier message: 03/08/2005, 11h21

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