Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMBO MULTICOLONNES, LA PARFAITE SOLUCE


Information sur la source

Description

Cliquez pour voir la capture en taille normale
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

  • ******************** 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
******************** 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











Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de ITALIA le 22/06/2004 10:54:09

Vraiment représentatif de ton programme cette Capture !!

signaler à un administrateur
Commentaire de Mindiell le 22/06/2004 15:01:11

N'empeche que cette grnouille a une super bouille ;o)

signaler à un administrateur
Commentaire de celiphane le 22/06/2004 17:12:26

pas top pour le déploiement aussi :(

@+
Celiphane

signaler à un administrateur
Commentaire de IdhaoBlue le 23/06/2004 09:41:54

Je n'ai que Microsoft ActiveX Data Objects Recordset 2.5 dans les references de mon projet. Comment puis je passer à Microsoft ActiveX Data Objects Recordset 2.7 ? (comment mettre à jour). merci

signaler à un administrateur
Commentaire de BOB33 le 24/06/2004 04:32:21

Salute

Cool ton  combo...

Petite blem de déburant, peu tu renseigner Mercie

exemple: ma base a 3 colonnes NON, PRENON, ADRESSE.

mon comboBox affiche tous les NON, la pas de blem.

une foie que je séléctionne un NON dans la comboBox , je voudrais quille maffiche la ligne du Non des 3 colonnes dans 3 texteBox aproprier, Txt_NON, Txt_PRENON, Txt_ADRESSE.

Mercie

Bonne Prog à tous @ +++

signaler à un administrateur
Commentaire de frop01 le 10/02/2005 20:31:21

:) Très utile !! Merci

signaler à un administrateur
Commentaire de acrcorp le 05/03/2005 12:27:57

La capture ne donne pas une idée sur ce que cela donne, c'est bien dommage pour un truc d'IHM...
(je comprends l'intérêt comique de la grenouille mais bon, ça fait chié d'être obliger de DL pour voir).

signaler à un administrateur
Commentaire de tbbuim1 le 27/03/2005 14:18:18

Petite précision pour ceux qui n'ont pas trouvé le Microsoft Form 2.0 library.
Faites parcourir sur le fichier FM20.dll de votre system32

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.