Conradd
Messages postés37Date d'inscriptionvendredi 3 décembre 2004StatutMembreDernière intervention17 septembre 2007
-
9 juin 2005 à 15:37
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 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.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 9 juin 2005 à 20:12
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 !?
Conradd
Messages postés37Date d'inscriptionvendredi 3 décembre 2004StatutMembreDernière intervention17 septembre 2007 10 juin 2005 à 10:41
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 ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 10 juin 2005 à 20:31
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 !?