Problème insertion plusieurs champs d'une requête d'une base de données dans une

jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011 - 22 déc. 2010 à 14:06
jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011 - 28 déc. 2010 à 20:17
Bonjour,
J'essaie d'introduire des données émanant de plusieurs champs différents d'une requête d'une base de données Access dans une listbox en vb.net.
A priori je ne réussis qu'a insérer un seul champ de la requête.
Comment pourrais-je faire pour insérer plusieurs autres champs.
Voici mon code :


Private Sub essai()
Dim cn As OleDb.OleDbConnection
Dim cmd As OleDb.OleDbCommand
Dim odr As OleDb.OleDbDataReader
Dim strSQL As String
cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\jean-jacques\Desktop\EI\Delegue.mdb;")
strSQL = _
"SELECT FicRen_CompStadeComp.NumeroCompetitionStadeCompetition, FicRen_CompStadeComp.Date, FicRen_CompStadeComp.Heure, Clubs.NomClub, FicRen_CompStadeComp.ScoreEquipeVisitee, Clubs_1.NomClub, FicRen_CompStadeComp.ScoreEquipeVisiteuse, FicRen_CompStadeComp.AnneeRencontresChampionnat " & _
"FROM CompetitionsStadeCompetition INNER JOIN (Clubs INNER JOIN (FicRen_CompStadeComp INNER JOIN Clubs AS Clubs_1 ON FicRen_CompStadeComp.NumeroEquipeVisiteuse Clubs_1.NumeroClub) ON Clubs.NumeroClub FicRen_CompStadeComp.NumeroEquipeVisitee) ON CompetitionsStadeCompetition.NumeroCompetition_StadeCompetition = FicRen_CompStadeComp.NumeroCompetitionStadeCompetition;"
cn.Open()
cmd = New OleDb.OleDbCommand(strSQL, cn)
odr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
ListBoxFrame.Items.Clear()
Do While odr.Read
ListBoxFrame.Items.Add(odr.Item("NumeroCompetitionStadeCompetition").ToString)
'ListBoxFrame.Items.Add(odr.Item("Date").ToString)
Loop
End Sub


Si une personne bien disposée pourrait résoudre mon problème qui se situe dans mon do while je suppose.
Merci d'avance.
JJG

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 déc. 2010 à 14:21
A priori je ne vois pas de problème particulier dans ton code.

Question bête : Ta requete telle qu'elle est là, renvoie bien plusieurs lignes ?


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011
22 déc. 2010 à 15:43
Le code de la ligne verte me renvoie un champ de la requête; c'est donc ok.
Le code de la ligne noire ne me renvoie rien vu que le code est inexact. Je recherche donc l'instruction valable qui me retournera un autre champs de la requête.

...

Do While odr.Read
ListBoxFrame.Items.Add(odr.Item("NumeroCompetitionStadeCompetition").ToString) 'ListBoxFrame.Items.Add(odr.Item("Date").ToString)
Loop
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 déc. 2010 à 16:55
Le code est inexact, c'est à dire ? Tu as un message d'erreur ?

Le champs Date est-il renseigné pour cette ligne ou est-il égal à Null ?


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011
23 déc. 2010 à 00:12
Voilà j'ai introduit le code suivant :

Do While odr.Read
ListBoxFrame.Items.Add(odr.Item("NumeroCompetitionStadeCompetition").ToString)
ListBoxFrame.Items.Add(odr.Item("Date").ToString)
ListBoxFrame.Items.Add(odr.Item("Heure").ToString)
ListBoxFrame.Items.Add(odr.Item("Clubs.NomClub").ToString)
ListBoxFrame.Items.Add(odr.Item("ScoreEquipeVisiteuse").ToString)
Loop

J'obtiens dans ma listbox une série de données émanant de ma requête qui se présente sous la forme d'une colonne alors que ce devrait être sous la forme d'une ligne.
J'en conclus que les instructions de la 2 ème à la 5 ème ligne dans le Do While sont éronées.

Dans le vb6 le code était le suivant et offrait le résultat esperé; tout sur une ligne:

While Not (rst.EOF)
ListBoxFrame.AddItem rst("NumeroCompetitionStadeCompetition")
ListBoxFrame.List(i, 1) = rst("Date")
ListBoxFrame.List(i, 2) = rst("Heure")
ListBoxFrame.List(i, 3) = rst("Clubs.NomClub")
ListBoxFrame.List(i, 4) = rst("ScoreEquipeVisitee")
'ListBoxFrame.List(i, 5) = rst("Clubs_1.NomClub")
ListBoxFrame.List(i, 6) = rst("ScoreEquipeVisiteuse")
ListBoxFrame.List(i, 7) = rst("AnneeRencontresChampionnat")
i = i + 1
rst.MoveNext
Wend
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 déc. 2010 à 14:22
Ok, je comprend mieux.

Je suis pas certain qu'une listbox soit capable de faire du multicolonne comme tu veux le faire.

Il vaudrait mieux utiliser un listview en mode "détails" à la place, je pense. A chaque items (1er colonne) tu peux rajouter toutes une série de subitems (les colonnes suivantes).


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
jjg65 Messages postés 28 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 16 août 2011
28 déc. 2010 à 20:17
Ok merci pour la réponse.
La listbox m'a donné trop de fil à retordre, je suis passé à la listview avec + de réussite.
Dire que la listbox en vb6 me donnait un résultat satisfaisant.
0
Rejoignez-nous