Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide pour remplir un combobox avec une table access

2 réponses
Avatar
doumo
Salut,
Je suis débutant et je voudrais de l'aide pour charger des combobox avec des
collones provenant de tables ACCESS.
Je vous envoie le bout de code que j'ai fait pour un combobox. A l'execution
mon combobox n'est pas chargé.
Je vous rappelle que je travaille avec VB.NET 2003

Private cnx As OleDbConnection
Private cmd As OleDbCommand
Private dta As OleDbDataAdapter
Private cmdb As OleDbCommandBuilder
Private dts As New DataSet
Private dtt As DataTable
Private dtc As DataColumn
Private dtr As DataRow
Private rownum As Integer
Private conn As String
Private sql As String
Public Sub fillCombobox(ByVal cbocombo As ComboBox, ByVal Ssql As
String, ByVal strtable As String, ByVal strdisplaymember As String, ByVal
intvaluemember As Integer)
cnx = New OleDbConnection
Try
With cnx
If .State = ConnectionState.Open Then .Close()
.ConnectionString = conn
.Open()
End With

cmd = New OleDbCommand(Ssql)
cmd.Connection = cnx
dta = New OleDbDataAdapter(cmd)
dta.Fill(dts, strtable)
cbocombo.DataSource = dts.Tables(strtable).DefaultView
cbocombo.DisplayMember = strdisplaymember
cbocombo.ValueMember = intvaluemember

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cnx.Close()
End Try
End Sub


Private Sub Form_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
conn = "provider=microsoft.jet.oledb.4.0; data
source=C:\bin\mabase.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
fillCombobox(MonCBo, "select * from table1", "table1", "Colonne2",
"Colonne1")

End Sub

2 réponses

Avatar
Hervé
Bonsoir doumo,

A mettre dans le module de ta Form, pour l'exemple, deux ComboBox seront
remplis avec les deux premiers champs) :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Dim Table As New DataTable
Dim Ligne As DataRowView
Dim Fichier As String
Dim NomTable As String = "NomDeLaTable"
Dim ChampTri As String = "ChampATrier"

Fichier = "C:NomDeLaBaseDeDonnées.mdb"

Table = ChargerTable(Fichier, _
"SELECT * FROM " & NomTable & " ORDER BY " &
ChampTri, NomTable)

For Each Ligne In Table.DefaultView

ComboBox1.Items.Add(Ligne.Item(0))
ComboBox2.Items.Add(Ligne.Item(1))

Next Ligne

End Sub

A mettre dans un module standard :

Imports System.Data.OleDb

Module Module1.vb

Public Function ChargerTable(ByVal Fichier As String, _
ByVal SQL As String, _
ByVal TableACharger As String) As DataTable

Dim Connexion As OleDbConnection = New OleDbConnection
Dim Jeu As New DataSet
Dim Table As DataTable
Dim Adaptateur As OleDbDataAdapter
Dim Provider As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="
Try

'récupère les valeur dans la base de données
Connexion.ConnectionString = Provider & Fichier
Connexion.Open()
Adaptateur = New OleDbDataAdapter(SQL, Connexion)
Adaptateur.Fill(Jeu, TableACharger)
Table = Jeu.Tables(TableACharger)

Return Table

Catch ex As Exception

Table = Nothing
Return Table

Finally

Connexion.Close()
Connexion = Nothing

End Try

End Function

End Module


Hervé.



"doumo" a écrit dans le message de
news:
Salut,
Je suis débutant et je voudrais de l'aide pour charger des combobox avec
des collones provenant de tables ACCESS.
Je vous envoie le bout de code que j'ai fait pour un combobox. A
l'execution mon combobox n'est pas chargé.
Je vous rappelle que je travaille avec VB.NET 2003

Private cnx As OleDbConnection
Private cmd As OleDbCommand
Private dta As OleDbDataAdapter
Private cmdb As OleDbCommandBuilder
Private dts As New DataSet
Private dtt As DataTable
Private dtc As DataColumn
Private dtr As DataRow
Private rownum As Integer
Private conn As String
Private sql As String
Public Sub fillCombobox(ByVal cbocombo As ComboBox, ByVal Ssql As
String, ByVal strtable As String, ByVal strdisplaymember As String, ByVal
intvaluemember As Integer)
cnx = New OleDbConnection
Try
With cnx
If .State = ConnectionState.Open Then .Close()
.ConnectionString = conn
.Open()
End With

cmd = New OleDbCommand(Ssql)
cmd.Connection = cnx
dta = New OleDbDataAdapter(cmd)
dta.Fill(dts, strtable)
cbocombo.DataSource = dts.Tables(strtable).DefaultView
cbocombo.DisplayMember = strdisplaymember
cbocombo.ValueMember = intvaluemember

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cnx.Close()
End Try
End Sub


Private Sub Form_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
conn = "provider=microsoft.jet.oledb.4.0; data
source=C:binmabase.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
fillCombobox(MonCBo, "select * from table1", "table1", "Colonne2",
"Colonne1")

End Sub

Avatar
doumo
Merci,
je suis absent de mon bureau mais je vais essayé dès que possible et revenir
pour vous rendre compte du résultat

"Hervé" a écrit dans le message de groupe de
discussion :
Bonsoir doumo,

A mettre dans le module de ta Form, pour l'exemple, deux ComboBox seront
remplis avec les deux premiers champs) :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Dim Table As New DataTable
Dim Ligne As DataRowView
Dim Fichier As String
Dim NomTable As String = "NomDeLaTable"
Dim ChampTri As String = "ChampATrier"

Fichier = "C:NomDeLaBaseDeDonnées.mdb"

Table = ChargerTable(Fichier, _
"SELECT * FROM " & NomTable & " ORDER BY " &
ChampTri, NomTable)

For Each Ligne In Table.DefaultView

ComboBox1.Items.Add(Ligne.Item(0))
ComboBox2.Items.Add(Ligne.Item(1))

Next Ligne

End Sub

A mettre dans un module standard :

Imports System.Data.OleDb

Module Module1.vb

Public Function ChargerTable(ByVal Fichier As String, _
ByVal SQL As String, _
ByVal TableACharger As String) As
DataTable

Dim Connexion As OleDbConnection = New OleDbConnection
Dim Jeu As New DataSet
Dim Table As DataTable
Dim Adaptateur As OleDbDataAdapter
Dim Provider As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="
Try

'récupère les valeur dans la base de données
Connexion.ConnectionString = Provider & Fichier
Connexion.Open()
Adaptateur = New OleDbDataAdapter(SQL, Connexion)
Adaptateur.Fill(Jeu, TableACharger)
Table = Jeu.Tables(TableACharger)

Return Table

Catch ex As Exception

Table = Nothing
Return Table

Finally

Connexion.Close()
Connexion = Nothing

End Try

End Function

End Module


Hervé.



"doumo" a écrit dans le message de
news:
Salut,
Je suis débutant et je voudrais de l'aide pour charger des combobox avec
des collones provenant de tables ACCESS.
Je vous envoie le bout de code que j'ai fait pour un combobox. A
l'execution mon combobox n'est pas chargé.
Je vous rappelle que je travaille avec VB.NET 2003

Private cnx As OleDbConnection
Private cmd As OleDbCommand
Private dta As OleDbDataAdapter
Private cmdb As OleDbCommandBuilder
Private dts As New DataSet
Private dtt As DataTable
Private dtc As DataColumn
Private dtr As DataRow
Private rownum As Integer
Private conn As String
Private sql As String
Public Sub fillCombobox(ByVal cbocombo As ComboBox, ByVal Ssql As
String, ByVal strtable As String, ByVal strdisplaymember As String, ByVal
intvaluemember As Integer)
cnx = New OleDbConnection
Try
With cnx
If .State = ConnectionState.Open Then .Close()
.ConnectionString = conn
.Open()
End With

cmd = New OleDbCommand(Ssql)
cmd.Connection = cnx
dta = New OleDbDataAdapter(cmd)
dta.Fill(dts, strtable)
cbocombo.DataSource = dts.Tables(strtable).DefaultView
cbocombo.DisplayMember = strdisplaymember
cbocombo.ValueMember = intvaluemember

Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cnx.Close()
End Try
End Sub


Private Sub Form_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
conn = "provider=microsoft.jet.oledb.4.0; data
source=C:binmabase.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
fillCombobox(MonCBo, "select * from table1", "table1", "Colonne2",
"Colonne1")

End Sub