Affichage combobox

alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016 - 25 oct. 2013 à 21:35
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016 - 27 oct. 2013 à 22:12
Bonjour,
Comme vous povez remarquer les valeurs de la colonnes versement sont affichés d'une manniere horizontale.
http://im35.gulfup.com/4UqbK.png
Quand je veux les récupérer dans la combobox, j'aimerai qu'ils soient affichés d'une manniere verticale.
http://im36.gulfup.com/hPQNz.png
J'ai éssayé avec ce code mais il n'a pas marché.
ComboBox1.DataSource = ds.Tables("data")
Dim i As String
For Each item In ComboBox1.Items
i = i & item & vbCrLf

ComboBox1.DisplayMember = "versement" & i
Next

merci

19 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 oct. 2013 à 10:33
Bonjour,
"Comme vous poUvez remarquer les valeurs de la colonne versement sont affichées d'une man ière horizontale".
on voit un affichage, mais on ne sait pas sur quoi, exactement !
Si tu peux récupérer ce qui parait être une chaîne de caractères, il te suffit de l'éclater sur l'espace (split) puis d'alimenter ta combo avec chaque item de l'array ainsi obtenu.
1
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
26 oct. 2013 à 22:03
Merci pour la réponse
Voila ce j'ai mis comme code mais ça na pas marché.
dt = ds.Tables("data")
ComboBox1.DataSource = dt
ComboBox1.DisplayMember = "versement"

Dim index As Integer = ComboBox1.Items.Count - 1
Dim dr As DataRow = dt.Rows(index)
Dim strValeur As String = dr.Item("versement").ToString
Dim arStr() As String = strValeur.Split(" ")

ComboBox1.Items.AddRange(arStr)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
26 oct. 2013 à 23:13
Bonjour
Dim itemvers() As String
For Each line As DataRow In dt.Rows
itemvers = line("versement").ToString.Split
For Each item As String In itemvers
ComboBox1.Items.Add(item)
Next
Next
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 13:24
Merci pour votre intéret mais je reçois ce message:

Impossible de modifier la collection d'éléments lorsque la propriété DataSource est définie.
j'ai éssayé d'ajouter
dt.Clear() 
et
dt = Nothing
mais toujous le meme message d'érreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 oct. 2013 à 13:31
comment tu remplis ta dt ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 27/10/2013 à 15:16
Une combo liée est par définition liée (et ne peut donc être modifiée)
Je t'avais posé une question quant au contrôle dont tu donnais (dans un lien une image).
Cette question est restée sans réponse !
Je crois maintenant comprendre qu'il s'agissait ni plus ni moins quede ta fameuse combobox liée !
Tu tournes là en rond et la seule solution est un affichage dans une autre combobox (non liée, elle) à partir des résultats de la première, hein ...
A moins, bien entendu d'alimenter directement ta combobox (mais non liée, dans ce cas) en traitant les données lues là où elles sont lues !
Je crains que tout cela ne soit finalement que la conséquence d'une erreur de conception résultant de l'absence ou de la carence d'utilisation d'une modélisation des données. Et tu en es maintenant à du "bidouillage" de "rattrapage" ...
Voilà.
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 16:59
comment tu remplis ta dt ?
 Dim Conn As New OleDbConnection(ConStr)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
Conn.Open()
Dim s As String = String.Empty

For i = 0 To ComboBox1.Items.Count - 1
s += ComboBox1.Items(i).ToString() + " "
Next

SavInto.CommandText = "INSERT INTO tblContacts(nom,prenom,age, versement)" & _
"values ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & s & "') "
SavInto.ExecuteNonQuery()

Conn.Close()
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 17:00
Je t'avais posé une question quant au contrôle dont tu donnais (dans un lien une image).
Cette question est restée sans réponse !

Quelle question?
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 17:03
Tu tournes là en rond et la seule solution est un affichage dans une autre combobox (non liée, elle) à partir des résultats de la première, hein ...

Avec une deuxième combobox ça marche très bien mais je voulais pas avoir une deuxième combobox
Je ne sais pas s'il y'a un moyen ou non..
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 17:05
Je crains que tout cela ne soit finalement que la conséquence d'une erreur de conception résultant de l'absence ou de la carence d'utilisation d'une modélisation des données. Et tu en es maintenant à du "bidouillage" de "rattrapage"
Excusez moi j'ai pas compris.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 oct. 2013 à 17:30
ton code ne contient aucun dataset


mieux vaut lire le cours et comprendre les bases que de copier
des bouts de code sans les comprendre

http://plasserre.developpez.com/cours/vb-net/?page=bases-donnees2
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 18:44
je suis désolé je me suis trompé. je t'ai recopie le mauvais code.

Dim cb As New OleDb.OleDbCommandBuilder(da)
Dim dsNewRow As DataRow
dsNewRow = ds.Tables(0).NewRow()
dsNewRow.Item("nom") = TextBox1.Text
dsNewRow.Item("prenom") = TextBox2.Text
dsNewRow.Item("age") = TextBox3.Text
dsNewRow.Item("versement") = ComboBox1.Items(0)
For i = 1 To ComboBox1.Items.Count - 1
dsNewRow.Item("versement") = dsNewRow.Item("versement") & " " & CStr(ComboBox1.Items(i))
Next
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 oct. 2013 à 18:46
1) Voilà ce à quoi tu n'as jamais répondu :
"on voit un affichage, mais on ne sait pas sur quoi, exactement ! "
2) "Avec une deuxième combobox ça marche très bien mais je voulais pas avoir une deuxième combobox
Je ne sais pas s'il y'a un moyen ou non..
"
Une autre fois : tu ne peux modifier les items d'une combobox liée !
3) Ton "Excusez moi j'ai pas compris" (à propos de la conception :
Tout ton problème semble être la conséquence de la présence de plusieurs données dans un même champ. Et cela, c'est la conception ...
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 20:50
Merci beaucoup de votre aide et merci pour le lien.
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 20:54
Pour l'affichage: c'ést une table access.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 oct. 2013 à 21:02
Si c'est bien cela (visualisation d'une table access), voilà qui conforte ce que je ne cesse de te dire : plusieurs données dans un seul champ (le champ "versement") met en exergue une défaillance de conception (modélisation des données).
Cet aspect-là n'a rien à voir avec le développement en soi, dont il n'est qu'une étape liminaire.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 oct. 2013 à 21:27
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 oct. 2013 à 21:34
Bonjour, cs_ShayW
En effet ! Et il n'a pas compris ou n'a pas voulu en tenir compte.
Mais il ne s'agit plus, à ce niveau, de développement, mais de méthode de modélisation (MCD).
A lui de s'intéresser, donc, à des méthodes telles MERISE, qui n'ont absolument rien à voir avec le développement ni (par voie de conséquence) avec quelque langage de développement (VB ou autre) que ce soit.
Bonne nuit.
0
alladin90 Messages postés 91 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 7 août 2016
27 oct. 2013 à 22:12
Merci à vous tous je suis entrain de lire le tuto que vous m'avez proposé.
Et je viens d'apprendre des choses intéressants.
Merci et bonne nuit
0
Rejoignez-nous