Afficher resultat d'une requete SQL dans une ListBox

Bonjour,

Je cherche à afficher les résultats d'une requête de recherche VBA dans une base de données MySQL dans une ListBox.

sans passer biensur par une feuille Excel.

Voila mon code actuel :

Sub ADOExcelSQLServer()

Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim Database_Name As String
Dim User_ID As String
Dim Password As String
Dim SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim Num As String

Server_Name = "127.0.0.1"
Database_Name = "base"
User_ID = "root"
Password = "m02pas"

'------------- Num est le critere de recherche dans ma base de donnée MySQL
Num = 1022

SQLStr = "SELECT numero FROM table01 WHERE numero LIKE '" & Num & "%'"

Set Cn = New ADODB.Connection
Cn.Open "Driver={MYSQL ODBC 8.0 Unicode Driver};Server=" & Server_Name & ";Database=" & Database_Name & ";Uid=" & User_ID & ";Pwd=" & Password & ";"
rs.Open SQLStr, Cn, adOpenStatic

'-----------------Affichage des resultats dans la feuil 2 de mon classeur Excel
With Worksheets("Feuil2").Range("a1:z500")

.ClearContents
.CopyFromRecordset rs
End With

rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing

End Sub

Merci d'avance.

bonjour,

essaie ceci

rs.Open SQLStr, Cn, adOpenStatic

'-----------------Affichage des resultats dans la feuil 2 de mon classeur Excel

a = rs.getrows
ListBox1.ColumnCount = UBound(a, 1) + 1
ListBox1.List = Application.Transpose(a)

Merci H2SO4 pour ta reponse,

j'ai essayé les deux lignes sauf que ca ne marche pas.

screenshot 1

tu trouveras ci-joint une capture d ecran de l'erreur.

bonjour,

sur quelle ligne as-tu le msg d'erreur ?

listbox1 ? tu dois mettre le nom de ta listbox qui se trouve sur ton userform ou sur ta feuille.

Bonjour benameca, slt h2so4,

j'ai fait le test et ça fonctionne bien,

copie les 2 fichiers dans le même répertoire et fait le test

84base.zip (5.87 Ko)

Merci à vous tous pour vos reponses.

j'ai bien mit le bon nom du listbox dans mon programme.... mais ca ne marche toujours pas.

Par contre le fichier que vous m'avez envoyé @i20100

ca marche tres bien, sauf que j'essai de faire pareil en utilisant comme source une base de données MySQL.

voila mon code actuel qui cherche les données dans la base MySQL et il les met dans un fichier excel.

moi je cherche pas à afficher ces valeurs dans une fichier excel mais les afficher dans un USERFORM dans une liste deroulante "Listbox" :

Sub ADOExcelSQLServer()

Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim Database_Name As String
Dim User_ID As String
Dim Password As String
Dim SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim Num As String

Server_Name = "127.0.0.1"
Database_Name = "base"
User_ID = "root"
Password = "m02pas"

'------------- Num est le critere de recherche dans ma base de donnée MySQL
Num = 1022

SQLStr = "SELECT numero FROM table01 WHERE numero LIKE '" & Num & "%'"

Set Cn = New ADODB.Connection
Cn.Open "Driver={MYSQL ODBC 8.0 Unicode Driver};Server=" & Server_Name & ";Database=" & Database_Name & ";Uid=" & User_ID & ";Pwd=" & Password & ";"
rs.Open SQLStr, Cn, adOpenStatic

'-----------------Affichage des resultats dans la feuil 2 de mon classeur Excel, je cherche alors à remplacer cette partie pour pouvoir afficher les resultats dans un menu deroulant "Listbox" de mon UserForm

With Worksheets("Feuil2").Range("a1:z500")

'------------------------------------------------------
.ClearContents
.CopyFromRecordset rs
End With

rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing

End Sub

bonjour,

mets-nous ton fichier avec ton userform et la listbox que tu veux populer.

Le voilà

merci encore une fois

35test1.xlsm (19.83 Ko)

bonjour,

quel est le mot de passe pour le code stp ?

ah oui je m'excuse je l'avais oublié

m02pas

re-bonjour,

voici le code adapté

182test1.xlsm (22.38 Ko)

Good job

merci beaucoup j'ai fait plusieurs test

ca marche tres bien

j'ai une derniere question

quel est la commande pour affecter une variable à un textbox

sachant que mon text box acceptera les numeros, lettres, carracteres speciaux ...

screenshot 2

Merci d'avance

bonjour,

num= textbox.value

mais le code proposé ne devra probablement plus se trouver dans userform_initialize. mais dans une évènement lié à la textbox en question.

pour ce qui me concerne, je pense que la question initiale a reçu sa réponse. ouvre un autre fil pour tes autres questions, d'autres personnes pourront t'aider.

Merci encore une fois.

ca marche tres bien.

maintenant que mes test marche sur le fichier excel

j'ai fait exactement pareil dans le developpeur VBA d'un logiciel de dessin CAO. (AUTODESK INVENTOR Professional 2019)

malheureusement ca ne marche pas, pourtant j'ai activé le Microsoft ActiveX.

il me sort comme beug :

screenshot 3 screenshot 4

Merci d'avance.

Je pense que j'ai un probleme de connector ODBC

je dois activer la connexion depuis INVENTOR il me semble !

j'essai de chercher dans les parametres mais je trouve rien.

je continue mes recherches ... je vous tiens au courant.

Merci Isabelle

c'est exactement ce que je cherche.

Rechercher des sujets similaires à "afficher resultat requete sql listbox"