vb如何将SQL数据库查询的结果导出到带字段名的Excel表?

来源:百度知道 编辑:UC知道 时间:2024/06/18 11:54:25
Dim mCnn as ADODB.Connection
Dim mRs As ADODB.Recordset
Dim strSql as String
Dim mExcelFile As Object

......'连接SQL数据库(省略)

strSql="select * from [表名] Order by 1"
Set mRs=New ADODB.Recordset
mRs.Open strSql, mCnn, adOpenKeyset, adLockReadOnly
If mRs.RecordCount > 0 Then
Set mExcelFile = CreateObject("Excel.Sheet")
mExcelFile.Application.Range("A1").CopyFromRecordset mRs
mExcelFile.SaveAs "c:\123.xls"
mExcelFile.Application.quit
Set mExcelFile = Nothing
End if
If mRs.State = adStateOpen Then mRs.Close: Set mRs = Nothing

上面的代码是完全可以将查询的结果导出到Excel中,问题是当打开123.xls时只有数据记录,并没有包含字段名,别人打开看不懂那列跟那列是代表什么!

请问有没有办法导出到Excel中也包含字段名?
希望各位大虾帮帮忙,最好不要长篇大论才能实现,要简洁。谢谢!
2楼的能说明白点吗,最好能给个例子,ok就加50分。

你在用CopyFromRecordset前先把字段名写上,然后换一行再把数据集拷贝就可以了。

===========================================================
先把这句mExcelFile.Application.Range("A1").CopyFromRecordset mRs
改为:
mExcelFile.Application.Range("A2").CopyFromRecordset mRs
然后在这句前面加上下面的代码试试看,应该可以的:

For i = 0 To mRst.Fields.Count - 1
mExcelFile.ActiveSheet.Cells(1, i + 1).Value = mRst.Fields(i).Name
Next

'设置字段名加粗(如果不需要可忽略此句)
mExcelFile.ActiveSheet.Range(.ActiveSheet.Cells(1, 1), mExcelFile.ActiveSheet.Cells(1, mRst.Fields.Count)).Font.Bold = True

excel是表,表是有列名的,对应数据库的字段名
就告诉你这么多
自己百度去吧,很多的