Groupement des contrôles

spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 5 juil. 2008 à 16:18
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 5 juil. 2008 à 19:10
Salut,

C'est la deuxième fois que je poste le même sujet. J'ai réalisé un groupement des label, images et checkbox, qui s'afficheront par rapport au nombre des ordinateurs dans une salle. C'est-à-dire, si une salle posséde 4 ordinateurs alors 4 labels + 4 checkbox + 4 images s'afficheront.
Avec mon code ça marche pour Images, mais je n'arrive pas à le faire avec les labels et les checkbox, sauf si je répéte le même code. Ben !! Voici mon code :

Private Sub Combo1_Click()
Set cn = New Connection
cn.Open "File name=" & App.Path & "\connect.udl"

s = "SELECT * FROM Salles WHERE Salles.nomsalle='" + Combo1 + "';"

Set rs = New Recordset
rs.Open s, cn, adOpenDynamic, adLockOptimistic

Dim ctrl As Control
Dim cmpt As Byte
Dim i As Byte
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is Image Or Label Then
            ctrl.Visible = False
        End If
    Next
    cmpt = 0
    For Each ctrl In Me.Controls
        If (TypeOf ctrl Is Image) And (cmpt < rs.Fields(2)) Then
            ctrl.Visible = True
            cmpt = cmpt + 1
        End If
    Next
End Sub

Puis le compteur commence à partir du dernier composant indexé, je veux faire le contraire.

Merci mes amis.

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 juil. 2008 à 16:29
salut,

le problème c'est que tu n'as pas spécialement lu ma réponse ;)

http://www.vbfrance.com/infomsg_GROUPE-CONTROLE_1165210.aspx#8

de plus dans ton cas tu devrais par un usercontrol contenant tes éléments à dupliquer, çà serait beaucoup plus propre
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 juil. 2008 à 16:38
Salut
Si tu n'as pas eu le réponse la première fois, c'est quet-être que tes explications ne sont pas claires - je confirme.
Dans ton code, tu recherches les Images présentes sur ta forme et tu rends visible selon certains critères.
Cela signifie que tu as créé à l'avance autant d'images qu'il t'en faudra.
Pourquoi ne pas avoir créé une Image de base avec un Index à 0 et que, ensuite, tu charges une copie de cette image en fonction de tes besoins ?
Exemple :
Tu as créé une Image1 avec l'Index à 0
Tu veux créer une nouvelle image identique à la première
   Load Image1(1)
   Image1(1).Visible = True
   Image1(1).Move ...
Utilise Image1.Count pour connaitre le nombre d'objets afin de déterminer quelle valeur utiliser pour le prochain index
Quand tu veux la supprimer :
   Unload Image1(1)

De plus, ta syntaxe n'est pas correcte :
   If TypeOf ctrl Is Image Or Label Then
Il faut répéter la consition en entier :
   If TypeOf ctrl Is Image Or TypeOf ctrl Is Label Then

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
5 juil. 2008 à 19:10
J'ai des difficultés en travaillant avec cette méthode .
0
Rejoignez-nous