Probleme d'affichage D'un SELECT en VB ? SVP

Résolu
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 14 juin 2010 à 15:32
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 15 juin 2010 à 08:25
Bonjour à tous ,

donc je fais un programme sur visual basic 2008 et j'ai une base de données access 2000

dans mon application quand je clique sur un bouton je voudrais ,à l'aide d'un SELECT, affiché les resulats du select dans une listbox

Probleme ma listbox reste toujours vide ....( et je n'ai jamais de message d'erreur)

Mon code :

Dim MyConnection As New System.Data.OleDb.OleDbConnection()
Dim Affiche As OleDb.OleDbCommand = MyConnection.CreateCommand()
Dim TA As New OleDb.OleDbDataAdapter(Affiche)
Dim Machines As New DataTable

MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\...\Debug\BaseDeDonnées.mdb"
MyConnection.Open()
Affiche.CommandText = "SELECT NomMachine FROM Machines"
Affiche.ExecuteNonQuery()
Try
TA.Fill(Machines)
With LB_ListMachines
.ValueMember = "NomMachine"
.DisplayMember = "NomMachine"
.DataSource = Machines
End With
Catch ex As Exception
MessageBox.Show("Impossible d'établir la connexion à la base !! " & ex.Message)
End Try
MyConnection.Close()



Dans ma base de données , j'ai 1 seule table "Machines" avec 4 champs ( N°Machine , NomMachine , AdresseiP , Secteur )

J'ai essayer de mettre un point d'arret sur la ligne "end with"
je pointe sur ma connexion sa marche nikel
sur la requete , sa s'affiche bien
.valuemembers , jai bien NomMachine
.displaymembers , jai bien NomMachine
et sur .datasource , jai system.data.datatable
et quand je regarde dans le datatable vizualizer , je vois bien ma liste de Nom de machines qui est dans ma base access....

Merci d'avance.
A voir également:

2 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
15 juin 2010 à 00:44
Re,

Eoute, je t'ai donné un code fonctionnel :

Dim oleDbConnex As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=EmplacemenntDeTaBase.mdb")
        Dim oleCmd As New OleDb.OleDbCommand("SELECT NomMachine FROM Machines", oleDbConnex)
        Try
            Dim TA As New OleDb.OleDbDataAdapter(oleCmd)
            Dim DT As New DataTable
            TA.Fill(DT)
            With MaListBox
                .ValueMember = "NomMachine"
                .DisplayMember = "NomMachine"
                .DataSource = DT
            End With
        Catch ex As Exception
            MessageBox.Show("Impossible d'établir la connexion à la base !! " & ex.Message)
        End Try


J'ai testé ce code en créant une base identique à la tienne, 4 colonnes de même nom, j'ai rentré des enregistrements et ca fonctionne, donc le problème c'est que tu dois te planter quelque part dans le chemin d'accès à la base et la base que tu renseigne est vide.

Si tu avais un autre problème tu aurais un message d'erreur.

Quand à ton code plus haut, il fonctionne aussi mais n'est pas optimisé tu ferme ta connexion sans savoir si elle sera ouverte et tu ne place pas le d'ouverture dans le Try.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010
15 juin 2010 à 08:25
ah ecoute bha je refais carrément une nouvelle application en mettant juste une listbox et un bouton
j'ai fait une nouvelle base

et sa marchee Lol (je me sens un peu c*n)
jdois avoir un petit truc qui fait ch**r le monde Lol parce que javais recopié tel quel le code que tu mavais passer ...
enfin bon sa marche

en tout cas un grand merci à toi de m'avoir consacrer du temps .
Encore MERCI
a bientot ;)
0
Rejoignez-nous