Checkbox à la volée [Résolu]

Messages postés
37
Date d'inscription
vendredi 3 décembre 2004
Dernière intervention
17 septembre 2007
- 9 juin 2005 à 15:37 - Dernière réponse :
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 10 juin 2005 à 20:31
Est-ce qu'il est possible de créer et d'ajouter des CheckBox sur un form par le code ?



Je m'explique, je tape dans une BDD et je veux avoir une Checkbox par champ disponible dans une table de la BDD.



Mais je n'arrive pas à créer un checkbox par champ et à l'appliquer sur mon form.



Help me
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 9 juin 2005 à 20:12
3
Merci
Salut,

Voilà un exemple que j'ai ressorti de mes cartons vb6. Ne sachant pas si tu utilises DAO ou ADO, l'exemple est basé sur un accès DAO à la base de données mais c'est adaptable. En espérant que ça pourra répondre à ta question.

Une form où tu colles le code suivant :

Option Explicit
Dim chk() As CheckBox


Private Sub Form_Load()
Dim db As Database
Dim fld As Field
Dim i As Integer


Set db = OpenDatabase("c:\temp\bd1.mdb")

For Each fld In db.TableDefs("Table1").Fields
ReDim Preserve chk(i)
Set chk(i) = Me.Controls.Add("vb.checkbox", "chk" & i, Me)
chk(i).Caption = fld.Name
If i > 0 Then chk(i).Top = chk(i - 1).Top + 350
chk(i).Visible = True
i = i + 1
Next


End Sub


Pour tester l'état de tes checkbox, ça sera

if chk(TonIndex).checked = true then ....

Bien sur, tu remplaces
"c:\temp\bd1.mdb" par le chemin de ta base et "Table1" par le nom de ta table mais je pense que tu l'auras compris.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
- 9 juin 2005 à 15:43
0
Merci
Salut,


Me.Controls.Add(
New System.Windows.Forms.CheckBox)


@+
Messages postés
37
Date d'inscription
vendredi 3 décembre 2004
Dernière intervention
17 septembre 2007
- 9 juin 2005 à 16:27
0
Merci
Je programme sous VB6.0, est-ce qu'il faut que j'ajoute un composant ou une référence pour utiliser ta commande Drahcir ?
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
- 9 juin 2005 à 16:59
0
Merci
Désolé, j'ai bien un vb 6.0 d'installé mais je ne l'utilise quasiment pas.....

J'ai cherché un peu mais en vain......

Sorry
@+
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 9 juin 2005 à 20:17
0
Merci
Petite modif,

pour les checkbox, plutôt que
if chk(TonIndex).checked = true then ....
c'est
if chk(TonIndex).value = checked then ....

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
37
Date d'inscription
vendredi 3 décembre 2004
Dernière intervention
17 septembre 2007
- 10 juin 2005 à 09:34
0
Merci
Ca marche très très bien, merci Drahcir pour ton aide et merci à toi, CanisLupus pour ta solution.



J'ai juste adapté le code parce que je travaille en ADO mais ça résout mon problème.



Grand merci.
Messages postés
37
Date d'inscription
vendredi 3 décembre 2004
Dernière intervention
17 septembre 2007
- 10 juin 2005 à 10:41
0
Merci
Dernière question pour peaufiner :



Je créée un Frame pour chaque table de ma BDD, je le place sur mon
form, je lis ensuite tous les champs de cette table et je les pose sur
mon form à l'intérieur du frame.



Pourtant, quand j'affiche le form, tous les frames de table sont bien là, mais vides.



Je n'ai pas vu de notions de container pour les frames, encore moins de méthode Add, quelqu'un a une idée ?
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 10 juin 2005 à 20:31
0
Merci
Pour faire la même chose avec une frame, toujours issu de mes vieux cartons, en rouge les modifs :

Option Explicit
Dim chk() As CheckBox


Private Sub Form_Load()
Dim db As Database
Dim fld As Field
Dim i As Integer


Set db = OpenDatabase("c:\temp\bd1.mdb")

For Each fld In db.TableDefs("Table1").Fields
ReDim Preserve chk(i)
Set chk(i) = Me.Controls.Add("vb.checkbox", "chk" & i, Me.Frame1)
chk(i).Caption = fld.Name
If i = 0 Then
chk(i).Top = 350
chk(i).Left = 350
Else
chk(i).Top = chk(i - 1).Top + 350
chk(i).Left = chk(i - 1).Left
End If
chk(i).Visible = True
i = i + 1
Next


End Sub


Pour tester l'état des checkbox, ça ne change pas. D'autre part, j'ai mis 350 comme valeur mais tu peux augmenter ou diminuer, à toi de voir ce qui te va le mieux.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.