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

Remplir un combobox avec les données d'une table Access

3 réponses
Avatar
HD
Bonjour,

Pour remplir un combobox d'après les données d'une base de donnée Access je
lis les données de la table que je mets sur une feuille Excel puis seulement
j'ajoute les données au combobox....

With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access
Database;DBQ=X:\local\bases\bdd.mdb;DefaultDir=X:\local\bases;DriverId=25;FI
L=MS Access;MaxBufferSize=8192;PageTimeout=5000;", Destination:=Range("A1"))
.Sql = "SELECT DISTINCT table.dos, table.rs FROM table"
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With

Do
ComboBox1.AddItem Cells(i, 2).Value
i = i + 1
Loop Until Cells(i, 1).Value = ""

Mais y'a-t-il un moyen beaucoup plus rapide qui me permetterais de remplir
directement le combobox à partir de la table de données sans passer par une
feuille Excel intermédiaire ? Quelque chose du style :

Pour tout table.dos de table combobox = table.dos

Merci d'avance pour votre aide
--
@+
HD

3 réponses

Avatar
Driss HANIB
Bien sur il faut à partir de ton prog VB faire une requête et récupérer les
données dans un recordset.
à partir de là du remplis ton combo..

je laisse le soin aux plus "didactiques" que moi le soin de te faire une
démo en ADO.
Pour ma part j'utilise encore DAO

Driss
"HD" a écrit dans le message de
news:%
Bonjour,

Pour remplir un combobox d'après les données d'une base de donnée Access


je
lis les données de la table que je mets sur une feuille Excel puis


seulement
j'ajoute les données au combobox....

With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access



Database;DBQ=X:localbasesbdd.mdb;DefaultDir=X:localbases;DriverId%;FI
L=MS Access;MaxBufferSize92;PageTimeoutP00;",


Destination:=Range("A1"))
.Sql = "SELECT DISTINCT table.dos, table.rs FROM table"
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:úlse
.SavePassword = True
.SaveData = True
End With

Do
ComboBox1.AddItem Cells(i, 2).Value
i = i + 1
Loop Until Cells(i, 1).Value = ""

Mais y'a-t-il un moyen beaucoup plus rapide qui me permetterais de remplir
directement le combobox à partir de la table de données sans passer par


une
feuille Excel intermédiaire ? Quelque chose du style :

Pour tout table.dos de table combobox = table.dos

Merci d'avance pour votre aide
--
@+
HD




Avatar
Eric
Bonjour HD,

Soit une combobox nommée Combo1 et avec une référence au projet sur
Microsoft AciveX Data Object 2.x Library

au chargement de ta feuille :

Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String, ConnectAccess As String
ConnectAccess = "Provider=Microsoft.jet.oledb.4.0;"
' chemin et nom de la bd à modifier
ConnectAccess = ConnectAccess & "Data
Source=D:AppliVBACCESS-ADOPlumier.mdb"
' SQL à modifier
strsql = "select distinct ville_client from tclient;"
conn.Open ConnectAccess
rs.Open strsql, conn, adOpenForwardOnly, adLockReadOnly, adCmdText
While Not rs.EOF
Combo1.AddItem rs(0)
rs.MoveNext
Wend
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub


conviendrait-il ?

A+
Eric


HD a écrit :
Bonjour,

Pour remplir un combobox d'après les données d'une base de donnée Access je
lis les données de la table que je mets sur une feuille Excel puis seulement
j'ajoute les données au combobox....

With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access
Database;DBQ=X:localbasesbdd.mdb;DefaultDir=X:localbases;DriverId%;FI
L=MS Access;MaxBufferSize92;PageTimeoutP00;", Destination:=Range("A1"))
.Sql = "SELECT DISTINCT table.dos, table.rs FROM table"
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:úlse
.SavePassword = True
.SaveData = True
End With

Do
ComboBox1.AddItem Cells(i, 2).Value
i = i + 1
Loop Until Cells(i, 1).Value = ""

Mais y'a-t-il un moyen beaucoup plus rapide qui me permetterais de remplir
directement le combobox à partir de la table de données sans passer par une
feuille Excel intermédiaire ? Quelque chose du style :

Pour tout table.dos de table combobox = table.dos

Merci d'avance pour votre aide
--
@+
HD




Avatar
HD
Merci à tous ça fonctionne !!!

--
@+
HD