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
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.