Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015
-
12 mars 2008 à 16:00
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 2008
-
13 mars 2008 à 07:30
Salut à tous !
J'ai une base de donnée Acces avec une table client
NumClient | NomClient
Je voudrais depuis mon combo box afficher les deux colonnes de ma table.
Pouvez vous m'aider svp ?
J'ai essayé avec ceci :
Private Sub TClient_Click()
If
TClient
.Text =
TClient
.List(
TClient
.ListIndex) Then
Data.Recordset.FindFirst ("NumClient= '" & T
Client
.Text & "'")
If Not Data.Recordset.EOF Then
TClient.
Text = Data.Recordset!NumClient
End If
End If
End Sub
Private Sub Form_Load()
Data.DatabaseName = App.Path & "\BaseDonnee.mdb"
Data.RecordSource = "Client"
Data.Refresh
Do
TClient
.AddItem Data.Recordset!NumClient
Data.Recordset.MoveNext
Loop While Data.Recordset.EOF = False
End Sub
Mais je n'ai obtenu que le numéro du client... mais pas dans le meme combo le nom du client dans une seconde colonne :
Pouvez vous m'aider svp ?
Merci d'avance !
----------
OS : Windows XP SP2
Platforme : VB 6.0 + SP6
cs_bouf
Messages postés114Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention20 mars 2008 12 mars 2008 à 17:24
Salut,
c'est parce que tu ne l'as pas ecrit :
Private Sub Form_Load()
Data.DatabaseName = App.Path & "\BaseDonnee.mdb"
Data.RecordSource = "Client"
Data.Refresh
Do
(voila c'est ici que tu rempli ton numero de client mais pas le nom !): TClient
.AddItem Data.Recordset!NumClient
En fait il faudrait :
TClient.AddItem Data.Recordset!NumClient & " " & Data.Recordset!NOMClient
tu rajoutes sur la meme ligne les 2 données par concatenation
mais pour pouvoir trouver ensuite ce client par son numéro tu dois créer son index par la ligne :
TClient.ItemData(TClient.NewIndex) = Data.Recordset!NumClient
Data.Recordset.MoveNext
Loop While Data.Recordset.EOF = False
End Sub
Cela fonctionnera. en tout cas c'est comme cela que je bosse.
a+
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015 12 mars 2008 à 19:12
Salut !
Merci il fonctionne très bien oui ! Mais j'ai un problème, quand je clic, il m'affiche le code du client et le nom a la fois alors que je voulais juste faire afficher à la selection du combo, le numéro du client, mais c'est pas grave ca passe si y'a pas moyen de remédier a cela... aussi... il me garde la taille de la colonne à son ouverture quelque soit la longeur du texte inscrit...
Vois sur l'image :
La taille et le cadre, si le cadre est impossible à réaliser, alors au moins la taille des colonnes m'aiderait vraiment beaucoup !
Merci
encore à toi !
----------
OS : Windows XP SP2
Platforme : VB 6.0 + SP6
cs_bouf
Messages postés114Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention20 mars 2008 12 mars 2008 à 21:48
Salut,
En fait tu veux lorsque tu déroules le combo voir le code client et le nom client mais à la sélection d'une ligne, tu ne voudrais voir QUE le code ? C'est ça ?
Si c'est cela, soit tu réduis la largeur du combo pour que l'on ne voit que le code soit tu met dans l'evenement combo_click ou combo_change la ligne
combo.text (ou combo.value je ne sais plus de tete)= Tclient.ItemData(Tclient.ListIndex)
Sinon, pour ta 2 eme question sur la largeur des colonnes..??? j'ai regardé et je n'ai pas trouvé comment faire des colonnes... En fait, dans l'exemple de code que je t'ai donné, j'utilise un combo non modifié de base avec UNE seule colonne et c'est dans cette UNIQUE colonne que je concatene 2 données : [code client][un espace][nom du client]
a+
Cliff le bouffeur
bricoyeye
Messages postés326Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 avril 20082 13 mars 2008 à 07:30
Salut,
Si tu veux des colonnes, prend une listeview, car avec des combos, tu ne peux faire de colonnes.
Pour le click, tu veux faire quoi au juste? et l'afficher ou?