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 :

"Remplir" dynamiquement des checkBox ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut "Remplir" dynamiquement des checkBox ?
    Bonjour,
    J'aimerais savoir quelle est la meilleure solution pour remplir dynamiquement toute une série de checkBox.
    Pour précision, lorsque je charge une form "Horaire", je dois récupérer tous les horaires ( 00:00, 00:30, 01:00, 01:30, ..... , 23:00, 23:30 ) qui sont dans une table et je doit afficher une checkbox pour chacun, afin que l'admin de l'appli puisse modifier la plage horaire en vigueur.
    Par exemple, actuellement on travaille entre 8H et 16H (donc toutes les cases entre 8H et 16H doivent être cochée à l'ouverture de la Form).
    J'ai essayé en créant mes 47 checkbox, qui s'appellent Check1, Check2, etc...., Check47.

    Mais quand je récupère mes enreg. dans 1 RS, je ne peux pas faire :

    dim i as integer
    dim temp as string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    i = 1
     
    While Not RS.EOF
     
    temp = "Check" & i  'J'essaye de "créer" le nom des checkbox dynamiquement
    temp.Caption = RS.fields![Nom_Horaire]  
    ....
     
    i = i +1
    Wend
    Ca plante sur :
    temp = "Check" & i

    Je peux pas gérer les caption et value dynamiquement car je peux pas "incrémenter" le nom du checkbox dynamiquement...

    Résultat, je dois gérer 1 à 1 tous les checkbox, ce qui n'est pas une bonne solution car en dur dans le code, donc pas bon si changement dans la base, et en + c'est super chiant

    Donc si quelqu'un voit comment faire...

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 190
    Points
    17 190
    Par défaut
    Fais sa avec des checkbox indexés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    While Not RS.EOF
     Check(i).Caption = RS.fields![Nom_Horaire]  
    .'...
    i = i +1
    Wend
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Je connaissais pas l'existence de cet index
    Par contre j'ai essayé ce que tu proposes mais y'a un bug.
    Les names de mes checkbox sont Check1, Check2, ...., Check47.
    Et je mets leur index respectif à 1, 2, etc...., 47.
    Mais ça ne marche pas quand je mets :

    Check(1).Caption = ....

    Et je dois mettre des "name" différents à chaque CheckBox...
    Comment faire ?

  4. #4
    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
    Points : 3 685
    Points
    3 685
    Par défaut
    Non justement, il ne faut surtout pas mettre de noms differents !
    Pour exemple, fais un essai avec un nouveau projet, crees un checkbox, appelle le ChkTest par exemple.
    Fais un copier/coller de ce checkbox et tu vas voir que VB vas te proposer de creer un groupe de controles, tu vas repondre oui.

    Ajoute un bouton de commande et mets comme code dans son evenement click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 0 To ChkTest.UBound
      ChkTest(i).Caption = "Checkbox # " & i
    Next i
    P.S Evite de parler de "name" si tu parles du Caption, il est important d'utiliser le bon vocabulaire pour etre mieux compris
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  5. #5
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Merci pour l'info...
    Je viens de capter le truc
    Par contre, il me met un message d'erreur (L'élément du groupe de controle '48' n'existe pas ...)
    Voici mon 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
     
    Private Sub Form_Load()
    Dim sReq As String
    Dim rRec As Recordset
    Dim i As Integer
     
    i = 1
     
    sReq = " SELECT * FROM T_Resa_Horaires2 ORDER BY RH_OrdreHoraires "
    Requete sReq, rRec
     
    While Not rRec.EOF
     
        Check1(i).Caption = rRec.Fields![RH_Horaires]
        If rRec.Fields![RH_PlageHoraires] = 1 Then
            Check1(i).Value = 1
        Else
            Check1(i).Value = 0
        End If
        i = i + 1
    Wend
     
    End Sub
    et je comprends pas car j'ai vérifié, j'ai bien 47 enregistrements !
    Et j'ai bien mon Check1 en 47 exemplaires et indexés de 1 à 47....

  6. #6
    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
    Points : 3 685
    Points
    3 685
    Par défaut
    Ben il manque un MoveNext dans ta boucle, la tu restes toujours sur le meme recordset donc ta boucle est sans fin.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

Discussions similaires

  1. ajouter dynamiquement des checkbox
    Par elgafsi86 dans le forum C#
    Réponses: 5
    Dernier message: 21/04/2010, 17h56
  2. Réponses: 11
    Dernier message: 26/12/2009, 17h29
  3. [WebForms]Ajouter dynamiquement des checkbox
    Par ardi dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 07/04/2006, 14h01

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