Ziehen Spaltennamen in Excel aus SQL Abfrage
Ich bin mit Excel zu ziehen Daten aus einer SQL-db. Ich benutzt den code aus einem anderen, SO Frage, und es funktioniert gut. Jetzt will ich ziehen in den Spaltennamen aus einer Tabelle neben der eigentlichen Tabelle. Ich habe herausgefunden, dass ich konnte die Namen verwenden Für Jede fld-Schleife. Aber es ist immer noch die Frage, bevölkern Sie Sie horizontal in einer Zeile im Excel die Anzahl der Spalten ändern kann - also dachte ich, ich bräuchte eine weitere For-each-Schleife auch oder etwas ähnliches.
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
- Willst du nicht die Header, gefüttert mit den Daten? Die Daten beginnen in A1, aber Sie scheinen zu haben, den header-Bereich zu A4.
- ja du hast Recht - schlecht kopieren und einfügen auf meinem Teil.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine üblichen code ist sehr ähnlich:
Ok, so habe ich es herausgefunden, nachdem 4 versuche, hier der code für die Schleife.
Range("A4").OffSet(0, x).value = fld.Name
Machen es super einfach, so etwas wie dies (mit Tabelle1 und recordset-r)
Können Sie einfach die "x" - variable auf 0 und dann so etwas machen:
Und das macht es ein bisschen leichter zu Lesen... 🙂