VBA 包含 SQL 查询标头
Posted
技术标签:
【中文标题】VBA 包含 SQL 查询标头【英文标题】:VBA to include SQL query headers 【发布时间】:2017-03-02 03:09:52 【问题描述】:我需要添加表头以包含在我的 VBA 代码中,该代码连接到 SQL。该代码正在运行(因为它在新工作表上吐出 SQL 结果),但它没有抓取标题。
有人可以帮忙吗?
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
【问题讨论】:
【参考方案1】:类似下面的东西应该可以工作。 (我刚刚将它从我的一个电子表格中拖出来 - 只是更改名称以保护无辜者。)
' 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("A2").CopyFromRecordset rs
行之前(您应该将其真正编码为 Worksheets("TestWorkSheet").Range("A2").CopyFromRecordset rs
- 在使用 Range
、Cells
等时限定您所指的工作表总是一个好主意)。
【讨论】:
以上是关于VBA 包含 SQL 查询标头的主要内容,如果未能解决你的问题,请参考以下文章
如何使用sql语句和vba将数据从MS-Access导入excel power查询?