Combo multicolonnes, la parfaite soluce

Description

c'est un simple combobox mais qui affiche plusieurs colonnes, j'ai deja trouver ce code sur ce site, mais en l'essayant ca ne fonctionner pas, alors j'ai realiser un petit tuning du code et maintenant ca fonctionne a merveille...

- un simple combobox qui affiche les données d'une base de donnees dans plusieurs colonnes...

1/ - il faut tout simplement referencer la bibliotheque Microsoft Forms 2.0 Object Library, est travailler avec son combo box qu'il vous offre...
2/ - referencer la bibliotheque Microsoft ActiveX Data Objects Recordset 2.7 Library
3/ - referencer la bibliotheque Microsoft ActiveX Data Objects 2.7 Library

avant de finir je dédie cette source a piwy...
j'espere que ca vous plaira, laisser moi vos commentaire....

Source / Exemple :



                                        • code a mettre dans le form ************************
'declaration des variables Dim RsMatiere As Recordset Dim RsClients As Recordset Public VClt As String Private Sub Form_Load() Set RsMatiere = New Recordset Set RsClients = New Recordset RsMatiere.Open "Select Filato,Cliente from Filato Group By Cliente,Filato", db_Cmde, adOpenStatic, adLockOptimistic RsClients.Open "Select [Code Client] from Clients ORDER BY [Code Client] ", db_Cmde, adOpenStatic, adLockOptimistic While RsClients.EOF = False Combo1.AddItem RsClients.Fields(0), 0 RsClients.MoveNext Wend End Sub Private Sub ComboMatiere_GotFocus() Dim i As Integer Dim VClt As String ComboMatiere.Clear ComboMatiere.ListRows = 10 VClt = Me.Combo1.Text If RsMatiere.State <> adStateClosed Then RsMatiere.Close RsMatiere.Source = "SELECT Filato,Colore,Partita, Cliente From Filato where Filato.Cliente = '" & VClt & "' Group By Cliente,Filato,Colore,Partita" RsMatiere.Open ComboMatiere.ColumnCount = 3 ComboMatiere.ColumnWidths = 200 i = 0 While RsMatiere.EOF = False ComboMatiere.AddItem RsMatiere.Fields(0) ComboMatiere.Column(1, i) = RsMatiere.Fields(1) ComboMatiere.Column(2, i) = RsMatiere.Fields(2) i = i + 1 RsMatiere.MoveNext Wend End Sub
                              • code a mettre dans le module de connexion****************
'------------------------------------------------------------------------------------------------------------------------- 'déclarations du types de connection à utiliser. '------------------------------------------------------------------------------------------------------------------------- Public db_Cmde As New ADODB.Connection '------------------------------------------------------------------------------------------------------------------------- 'déclarations des recordsets. '------------------------------------------------------------------------------------------------------------------------- Global rs As Recordset Public Sub Main() Set db_Cmde = New Connection '*************************************************' '* Chaîne de Connexion à la Base De *' '*************************************************' db_Cmde.CursorLocation = adUseClient db_Cmde.Mode = adModeReadWrite db_Cmde.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Combo_multicolonnes\fil.mdb ;" Form1.Show End Sub

Codes Sources

A voir également

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.