Lister les noms des tables mySQL dans une label en VBA Excel

Résolu
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010 - 23 déc. 2009 à 09:37
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre 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 !

10 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 déc. 2009 à 09:52
fais un OpenSchema

la doc msdn te donnera comment faire.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010
11 janv. 2010 à 09:08
Bonjour,

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

Merci d'avance
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 janv. 2010 à 09:25
pourquoi une autre soltuion ?

un OpenSchema ne fonctionne-t'il pas ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010
11 janv. 2010 à 09:46
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 janv. 2010 à 09:51
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
0
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010
11 janv. 2010 à 11:00
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 janv. 2010 à 11:04
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
0
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010
11 janv. 2010 à 11:20
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 !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
11 janv. 2010 à 11:28
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
0
cs_Fred2468 Messages postés 32 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 15 janvier 2010
11 janv. 2010 à 11:51
Super sa marche impécable :) J'ai concaténer et mit tout sa dans une label :)

Encore merci pour votre aide !
0