java recordset 列名,如何在VBA中获取列名?

I have created a module where I am reading the data from SQL DB using a stored procedure and I am getting all the required data, but my requirement is that I also needs all the column name/headers too. And I can't hardcode the name because I am converting the data rows into columns in stored procedure.

Here is the code I have written:

ConnStr = "PROVIDER=SQLOLEDB.1;"

ConnStr = ConnStr & "DATA SOURCE=" & dataSrc & "; INITIAL CATALOG=" & iCatalog & "; "

ConnStr = ConnStr & "User ID = " & dbUserId & "; Password = " & dbPassword

On Error GoTo ErrHandler

DBConn.Open ConnStr

' Create a recordset object.

Dim rsCounter As ADODB.Recordset

Set rsCounter = New ADODB.Recordset

Dim startDate As String, endDate As String, query As String

query = "Exec ReadCntrs 0, '12/01/2011', '12/30/2011'"

With rsCounter

' Assign the Connection object.

.ActiveConnection = DBConn

.Open query

' Copy the records into cell A1 on Sheet1.

Sheet1.Range("A1").CopyFromRecordset rsCounter

' Tidy up

.Close

End With

DBConn.Close

Set rsCounter = Nothing

Set DBConn = Nothing

ExitHere:

On Error Resume Next

DBConn.Close: Set DBConn = Nothing

Err.Clear

Exit Sub

ErrHandler:

MsgBox Err.Number & Err.Description, vbExclamation

Resume ExitHere

End Sub

解决方案

With rsCounter

' Assign the Connection object.

.ActiveConnection = DBConn

.Open query

' Write the column names into cell A1 on Sheet1.

Dim counter As Long

For counter = 0 To rsCounter.Fields.Count - 1

Sheet1.Range("A1").Offset(, counter).Value = rsCounter.Fields(counter).Name

Next

' Copy the records into cell A2 on Sheet1.

Sheet1.Range("A2").CopyFromRecordset rsCounter

' Tidy up

.Close

End With

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值