如何从 adodb 记录集中访问存储过程中的变量?

Posted

技术标签:

【中文标题】如何从 adodb 记录集中访问存储过程中的变量?【英文标题】:How to access variable in stored proc from adodb recordset? 【发布时间】:2017-03-24 18:50:26 【问题描述】:

我正在从我的存储过程中的前一个 select 语句返回记录计数。如果我使用此存储过程通过 ADODB 记录集填充 Excel 宏,如何访问 Excel 中的“RecordCount”字段?

存储过程:

set @EndDate = DateAdd(ss,-1,DateAdd(dd,1,@EndDate))

select
    Fields
from
    dbo.Table
where
    Field between @StartDate and @EndDate
order by
    Field desc

select @@ROWCOUNT AS 'RecordCount'

返回这个:

 Field Names
 -----------
 Data

 RecordCount
 -----------
 36

我想在 VBA 的这行代码中使用 RecordCount 字段:

Dim recCount As Long
recCount = "RecordCount" Field

【问题讨论】:

【参考方案1】:

看起来你需要 Range 属性:

Dim recCount As Long
 recCount = Range("RecordCount").Value 

如果您需要读取另一张纸的值,您会这样做:

Sheets("Sheet2").Range("A1").Value

see reference

【讨论】:

我没有在 Excel 单元格中返回此 RecordCount 字段。我想知道如何从存储过程中获取这个值。在我的选择查询结果之后返回它。所以我猜你可以说它在一个单独的数据集中而不是我的选择结果? 您的问题是,“如何访问 Excel 中的“RecordCount”字段?为什么我会因为回答所问的问题而被否决?原帖有一个 vba 标签。

以上是关于如何从 adodb 记录集中访问存储过程中的变量?的主要内容,如果未能解决你的问题,请参考以下文章

adodb updateBatch 存储不正确的信息

是否从记录集中返回BSTR

如何从具有命名参数的表值函数创建 ADODB 记录集

如何手动将新记录正确添加到空记录集中?

在 MSAccess 中使用 VBA (ADODB) 将数据从远程 DB 附加到本地表,而不锁定远程 DB 中的记录

如何将存储过程中的多个结果存储到数据集中?