Tirant les Noms de Colonne dans Excel à partir d'une requête SQL
Je suis à l'aide d'Excel d'extraire les données à partir de SQL db. J'ai utilisé le code d'un autre DONC, la question et il fonctionne très bien. Maintenant, j'ai envie de tirer dans les noms de colonnes d'une table en plus de la table. J'ai pensé que je pourrais obtenir les noms à l'aide De la fld boucle. Toutefois, il y a encore la question du peuplement horizontalement sur une ligne dans Excel que le nombre de colonnes peut changer, alors je me dis, j'aurais besoin d'un autre Pour chaque boucle aussi, ou quelque chose de similaire.
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
Ne voulez-vous pas les en-têtes alignées avec les données? Les données commence en A1, mais vous avez l'air d'avoir la tête gamme au format A4.
ouais vous avez raison, mauvais copier et coller de ma part.
ouais vous avez raison, mauvais copier et coller de ma part.
OriginalL'auteur firedrawndagger | 2010-11-16
Vous devez vous connecter pour publier un commentaire.
Mon habitude de code est très similaire:
Je suis déçu par l'absence d'une solution qui ne recourt pas à une boucle.
OriginalL'auteur dendarii
Ok, donc j'ai pensé à elle après 4 tentatives, voici le code de la boucle.
Range("A4").OffSet(0, x).value = fld.Name
OriginalL'auteur firedrawndagger
Pour super simple, faire quelque chose comme ceci (à l'aide de la feuille Sheet1 et jeu d'enregistrements r)
OriginalL'auteur protoculture
Il vous suffit de définir votre "x" à la variable à 0 et puis faire quelque chose comme:
Et qui va le rendre un peu plus facile à lire... 🙂
OriginalL'auteur Tony Diaz