Lister les noms des tables mySQL dans une label en VBA Excel [Résolu]

Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
- - Dernière réponse : cs_Fred2468
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
- 11 janv. 2010 à 11:51
Bonjour,

Je sais pas comment faire, j'aimerai bien afficher les noms de mes tables mySQL de ma base de données dans une label en VBA Excel, j'arrive sans problème à me connecter à ma base de donnée via une connexion ADODB. Avec tout sa, j'arrive à créer des tables de cette manière :

sqlstr = "CREATE TABLE " & tbxNomTable & "(" _
& Champ_1 & " " & Type1.Value & "," _
& Champ_2 & " " & Type2.Value _
& ")"

conn.Execute sqlstr

Alors en partant de se code, j'avais pensé faire un truc du genre :

sqlstr = "SHOW TABLES "

Mais aucun résultat.

Quelqu'un à une petite idée ?

Merci d'avance !
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
fais un OpenSchema

la doc msdn te donnera comment faire.


Renfield - Admin CodeS-SourceS - MVP Visual Basic

Merci Renfield 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
0
Merci
Bonjour,

Je reviens avec le même problème, quelqu'un aurai-t-il une autre solution ?

Merci d'avance
Commenter la réponse de cs_Fred2468
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
pourquoi une autre soltuion ?

un OpenSchema ne fonctionne-t'il pas ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
0
Merci
Je ne comprend pas tout, j'ai essayer de reprendre ce code, en remplacant "Data source" par le nom de la base de donnée, mais lorsque je le lance, il m'indique que le serveur SQL est introuvable ou bien que les accès sont refusé, Voici l'erreur : Microsoft OLE DB Provider for SQL Server -->[DBNETLIB][ConnectionOpen (Connect()).]Ce servezr SQK n'existe pas ou son accès est refusé.

On Error GoTo ErrorHandler

Dim Cnxn As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnxn As String



Set Cnxn = New ADODB.Connection
strCnxn = "Provider='sqloledb';Data Source='atelier';" & _
"Initial Catalog='pubs';Integrated Security='SSPI';"
Cnxn.Open strCnxn

Set rstSchema = Cnxn.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop

' clean up
rstSchema.Close
Cnxn.Close
Set rstSchema = Nothing
Set Cnxn = Nothing
Exit Sub

ErrorHandler:
' clean up
If Not rstSchema Is Nothing Then
If rstSchema.State = adStateOpen Then rstSchema.Close
End If
Set rstSchema = Nothing

If Not Cnxn Is Nothing Then
If Cnxn.State = adStateOpen Then Cnxn.Close
End If
Set Cnxn = Nothing

If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If

Merci d'avance !
Commenter la réponse de cs_Fred2468
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
sur que si ta connection string par en quenouille...

réutilises ton objet cnn evoqué dans ta question.

au pire :

www.connectionstrings.com/mysql#p27


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
0
Merci
Si je reprend l'erreur que sa me fais,

Microsoft OLE DB Provider for SQL Server -->[DBNETLIB][ConnectionOpen (Connect()).]Ce servezr SQK n'existe pas ou son accès est refusé.

Je pense que le problème viens du "Provider", mais la je sais pas comment procéder, faut-il installer qqch ?

merci
Commenter la réponse de cs_Fred2468
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
euh....

regarde le lien que je t'ai fourni.

Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
0
Merci
J'ai réussi à afficher une table dans un label en faisant cela :

Set rstSchema = conn.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
ListeTable = rstSchema!TABLE_NAME 'Affiche table dans label "ListeTable"
rstSchema.MoveNext
Loop

' clean up
rstSchema.Close
conn.Close
Set rstSchema = Nothing
Set conn = Nothing
Exit Sub


Mais le problème maintenant, c'est qu'il me prend que la dernière table :) Pas terrible avez-vous une solution ?

Merci de votre aide !
Commenter la réponse de cs_Fred2468
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
tu boucle ainsi :

Set RS = ...
Do Until RS.EOF
   ValeurAffichée = RS.Fields("TABLE_NAME")
   RS.MoveNext
Loop


du coup, a chaque itération, ValeurAffichée est remplacée par la valeur suivante...

j'ignore ce que tu souhaites faire de la liste des tables, mais il te faut les concaténer

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
32
Date d'inscription
mercredi 27 mai 2009
Dernière intervention
15 janvier 2010
0
Merci
Super sa marche impécable :) J'ai concaténer et mit tout sa dans une label :)

Encore merci pour votre aide !
Commenter la réponse de cs_Fred2468

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.