2017-03-02 6 views
1

SQLに接続されたVBAコードに含めるテーブルヘッダーを追加する必要があります。コードは動作しています(新しいワークシート上でSQL結果を吐き出しているため)が、ヘッダーを取得していません。SQLクエリヘッダーを含めるVBA

誰かが助けることができますか?

Sub SpectrumADGroupMapping() 

    'Start Declarations' 
    Dim Cn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    'Connection string to SQL server/DB (Windows Auth) 
    Set Cn = New ADODB.Connection 
    Cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=TEST;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=TESTPC;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=TESTDBNAME" 
    Cn.Open 

    Set and Execute SQL Command 
    Set rs = New ADODB.Recordset 
    rs.ActiveConnection = Cn 
    rs.Open "Select top 50* from TestTable order by creationDate desc" 

    'Copy Data to Excel 
    Worksheets.Add(After:=Worksheets(1)).Name = "TestWorkSheet" 
    Range("A2").CopyFromRecordset rs 

    Cn.Close 

End Sub 

答えて

0

次のようなものが動作するはずです。 (私は私のスプレッドシートの1からそれを単にドラッグしてきました - ちょうど無実を保護するために名前を変更する。)あなたのRange("A2").CopyFromRecordset rsライン(Worksheets("TestWorkSheet").Range("A2").CopyFromRecordset rsとして、あなたがすべき本当にコードの前にコード

' Write out the Field names as column headings 
Dim c As Long 
For c = 1 To rs.Fields.Count 
    With Worksheets("TestWorkSheet").Cells(1, c) 
     .Value = rs.Fields(c - 1).Name 

     'The rest is just how we format the headings - leave it in or take it out 
     .Font.Bold = True 
     .Interior.Pattern = xlSolid 
     .Interior.PatternColorIndex = xlAutomatic 
     .Interior.ThemeColor = xlThemeColorDark1 
     .Interior.TintAndShade = -0.149998474074526 
     .Interior.PatternTintAndShade = 0 
     .HorizontalAlignment = xlCenter 
     .VerticalAlignment = xlCenter 
     .WrapText = True 
     'End of formatting of headings 

    End With 
Next c 

プレイス - それはいつもですRange、などを使用しているときに参照しているワークシートを修飾することをお勧めします)。

関連する問題