将sql查询结果导出为使用vba标题

我需要导出一个简单的SQL查询结果为Excel,我得到的结果,但头失踪,可以any1请帮助导出标题以及?

这是我迄今为止:

Sub Conn2SQL() Dim cnn1 As New ADODB.Connection Dim mrs As New ADODB.Recordset Set cnn1 = New ADODB.Connection cnn1.ConnectionString = "driver={SQL Server};server=MyDBServer;uid=MyuserID;pwd=mypassword;database=MyDB" cnn1.ConnectionTimeout = 30 cnn1.Open SQry = "use MyDB select * from TableName" mrs.Open SQry, cnn1 Sheet2.Range("A2").CopyFromRecordset mrs mrs.Close cnn1.Close End Sub 

您需要遍历字段名称以包含标题。 下面是一个来自微软网站的例子:

 For iCols = 0 To oRS.Fields.Count - 1 Sheet(1).Cells(1, iCols + 1).Value = oRS.Fields(iCols).Name Next 

所以要在你的代码中实现,就是这样的:

 Sub Conn2SQL() Dim cnn1 As New ADODB.Connection Dim mrs As New ADODB.Recordset Dim iCols As Integer Set cnn1 = New ADODB.Connection cnn1.ConnectionString = "driver={SQL Server};server=MyDBServer;uid=MyuserID;pwd=mypassword;database=MyDB" cnn1.ConnectionTimeout = 30 cnn1.Open SQry = "use MyDB select * from TableName" mrs.Open SQry, cnn1 For iCols = 0 To mrs.Fields.Count - 1 Worksheets("Sheet2").Cells(1, iCols + 1).Value = mrs.Fields(iCols).Name Next Sheet2.Range("A2").CopyFromRecordset mrs mrs.Close cnn1.Close End Sub 

还有另一种方法来做到这一点。 您可以将您的SQL连接和表格数据添加到工作表。 (Excel数据连接向导)

然后使用你的VBA删除该表中的数据,并通过代码插入数据(使用VBA创buildSQL连接和查询)。

一旦代码成功删除数据并将SQL数据重新查询到表中,就可以删除创build的连接。

您将剩下一个带有列标题的表格,现在您的数据将被dynamic地导入并转储到表格中。 不需要列标题VBA。 🙂