J'utilise Excel pour extraire des données d'une base de données SQL. J'ai utilisé le code d'une autre question SO et ça fonctionne bien. Maintenant, je veux tirer les noms de colonnes d'une table en plus de la table réelle. J'ai compris que je pourrais obtenir les noms en utilisant la boucle For Each Fld. Cependant, il y a toujours le problème de les remplir horizontalement dans Excel dans la mesure où le nombre de colonnes peut changer - donc je pense que j'aurais besoin d'un autre pour chaque boucle ou quelque chose de similaire.Extraction de noms de colonnes dans Excel à partir d'une requête SQL
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "select * from myTable"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
'Loop Names'
' WHAT TO DO HERE????'
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open objMyCmd
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
Vous ne voulez pas les en-têtes alignés avec les données? Les données commencent dans A1, mais vous semblez avoir défini la plage d'en-tête sur A4. –
ouais vous avez raison - mauvaise copie et coller de ma part. – firedrawndagger