Bonjour,
J'explique un peu mon programme.
J'ai une bdd Access (mdb) et je voudrais que via mon interface l'utilisateur puisse ajouter un enregistrement dans une table.
Comme je ne connais pas en avance les tables, je créé dynamiquement les combobox et les labels comme suit
Jusque la tout fonctionne comme souhaité. Mais je voudrais pouvoir remplir les combobox nouvellement créées et la je ne vois pas comment m'y prendre.
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
38
39
40
41
42
43
44
45
46
47
48 Dim x As Integer = Form1.tablegridview.Columns.Count - 1 Dim tableau(1, x) As String For i = 0 To x tableau(0, i) = i + 1 tableau(1, i) = Form1.tablegridview.Columns(i).Name.ToString Next Dim Top As Integer = 100 Dim Left As Integer = 100 Dim Width As Integer = 2500 Dim Height As Integer = 275 Dim NumeroCBox As Integer = 1 Dim Cbox As ComboBox Dim label_dyn As Label For i = 1 To x + 1 Cbox = New ComboBox label_dyn = New Label With label_dyn .Name = "label" & i .Visible = True .Top = Top - 15 'Definit la distance entre le bord haut de la fenetre et le bord du conteneur .Left = Left 'Definit la distance entre le bord gauche de la fenetre et le bord du conteneur .AutoSize = True .Text = tableau(1, i - 1) End With With Cbox .Name = "Cbox_" & tableau(1, i - 1) .Visible = True .Top = Top 'Definit la distance entre le bord haut de la fenetre et le bord du conteneur .Left = Left 'Definit la distance entre le bord gauche de la fenetre et le bord du conteneur .Width = Width 'Definit la largeur de l'objet .Height = Height 'Definit la hauteur de l'objet .Size = New Size(200, 200) End With Me.Controls.Add(Cbox) Me.Controls.Add(label_dyn) Top = Top + 50 NumeroCBox = NumeroCBox + 1 If (i > 0) And (i Mod 8 = 0) Then Top = 100 Left = Left + 250 End If Next
Quand je connaissais le nombre de combobox et leur noms je faisais comme ça
Mais ici donc je connaissais le nom de ma combobox et elle existait déjà
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 Dim objcmd As OleDbCommand Dim objDataAdapter As OleDbDataAdapter Dim objCB As OleDbCommandBuilder Dim objDataSet As New DataSet Dim objDataTable As New DataTable If con.State = ConnectionState.Closed Then con.Open() End If chaine = "SELECT DISTINCT Author FROM [" & Cbox_nametbl.Text & "]" objcmd = New OleDbCommand(chaine) objDataAdapter = New OleDbDataAdapter(objcmd) objcmd.Connection = con objCB = New OleDbCommandBuilder(objDataAdapter) objDataAdapter.Fill(objDataSet, "[" & Cbox_nametbl.Text & "]") objDataTable = objDataSet.Tables("[" & Cbox_nametbl.Text & "]") Creation_composant.Cbox_autor.DisplayMember = "Author" Creation_composant.Cbox_autor.ValueMember = "Author" Creation_composant.Cbox_autor.DataSource = objDataSet.Tables("[" & Cbox_nametbl.Text & "]") con.Close()
Mais aujourd'hui je ne peux plus faire comme ça et je suis perdu dans le brouillard. Je ne vois pas comment faire. Des idées ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Creation_composant.Cbox_autor.DisplayMember = "Author" Creation_composant.Cbox_autor.ValueMember = "Author" Creation_composant.Cbox_autor.DataSource = objDataSet.Tables("[" & Cbox_nametbl.Text & "]")
Partager