Besoin D'aide pour un SELECT en VB , svpp !

nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 11 juin 2010 à 13:57
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010 - 14 juin 2010 à 14:19
Bonjour à tous,

J'aurai vraiment besoin d'aide , j'ai un projet à faire et sa fait 2jour que je suis bloquer dessus parce que je n'arrive pas à faire afficher les résultats d'un Select dans une listbox
J'ai essayer plein de chose differentes mais rien n'y fait .
Soit un message qui me dit que ma base n'est pas connecté , soit que l'argument prompt ne peut pas etre converti en type string ...

J'ai une base access 2000 , avec 4champs ( N°machine, NomMachine , AdresseIP, secteur ) et je travaille sur visual basic 2008

voila mon code :

1e méthode ( pr celle la l'erreur vient de la connexion de la base)

Dim LB_ListeMachines As New ListBox
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim bd As DBEngine


Try
bd = New DBEngine
db = bd.OpenDatabase("C:\...\Debug\BaseDeDonnées.mdb")
rs = db.OpenRecordset("SELECT NomMachine FROM Machines ")
While Not rs.EOF
LB_ListeMachines.Items.Add(rs.Fields("NomMachine").Value)
rs.MoveNext()
End While

Catch ex As Exception 'message d'exception si erreur
MessageBox.Show("Impossible d'établir la connexion à la base !!" & ex.Message)
End Try

MyConnection.Close()


2e Methode ( erreur : prompt ne peut pas etre en string )


Dim MyConnection As New System.Data.OleDb.OleDbConnection()
Dim Affiche As OleDb.OleDbCommand = MyConnection.CreateCommand()
Dim LB_ListeMachines As New ListBox
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim bd As DBEngine

Try
MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\...\Debug\BaseDeDonnées.mdb"
MyConnection.Open()

Affiche.CommandText = "Select NomMachine from Machines"
MsgBox(Affiche.CommandText)
rs = Affiche.OpenRecordset(Affiche.CommandText)
Affiche.ExecuteNonQuery()
While Not rs.EOF
LB_ListeMachines.Items.Add(rs.Fields("NomMachine").Value)
rs.MoveNext()
End While


Catch ex As Exception 'message d'exception si erreur
MessageBox.Show("Impossible d'établir la connexion à la base !!" & ex.Message)
End Try

MyConnection.Close()


Merci d'avance
A voir également:

23 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 juin 2010 à 13:51
Mais ca fonctionne ou pas ton combobox se rempli ?

Quand tu met un point d'arrêt tu regarde bien la ligne au dessus ?

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010
14 juin 2010 à 14:14
bha nan ma listbox reste toujours vide


Voila 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 DT 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(DT)
With LB_ListMachines
.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
MyConnection.Close()


quand je met 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

mais rien dans la listbox...
0
nico8001 Messages postés 92 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 30 juin 2010
14 juin 2010 à 14:19
et quand je regarde dans le datatable vizualizer , je vois bien ma liste de Nom de machines qui est dans ma base access
0
Rejoignez-nous