我在 Excel 2007 中调用了一个存储过程(SQL Server 2005)。这个 SP 有两个选择语句,但是在 excel 工作表中,显示了第一个语句的结果。有什么想法吗?
问问题
403 次
2 回答
0
如果您的存储过程有两个 select 语句,您将返回两个记录集。确保将两者都写入工作表。您还应该验证两个 select 语句是否都返回行。
注意:如果您想使用 VBA 尝试此操作,专业 Excel 开发一书的第 19 章专门介绍与 SQL Server 交互。本章将引导您连接到数据库、执行存储过程以及将结果写回您的工作簿。提供了您需要的所有代码,以及对其功能的良好解释。如果您是 VBA 新手,那么这本书就在您应该选择的短名单上。查看好书,为他人学习 Excel VBA。
下面是从存储过程返回 5 个记录集的 sub 的一部分示例:
If Not rsData.EOF Then
' The first recordset contains prices
Sheet39.Range("a1").CopyFromRecordset rsData
Set rsData = rsData.NextRecordset
' The second recordset contains products
Sheet39.Range("a20").CopyFromRecordset rsData
Set rsData = rsData.NextRecordset
' The third recordset contains stores
Sheet39.Range("a35").CopyFromRecordset rsData
Set rsData = rsData.NextRecordset
' The fourth recordset contains payment types
Sheet39.Range("j1").CopyFromRecordset rsData
Set rsData = rsData.NextRecordset
' The fifth recordset contains customers
Sheet39.Range("j8").CopyFromRecordset rsData
Set rsData = rsData.NextRecordset
Else
MsgBox "No data located.", vbCritical, "Error!"
End If
于 2012-06-11T13:39:51.917 回答
0
我使用 VBA 用结果集填充工作表,这解决了问题。我还必须编写代码来遍历所有结果集。
于 2012-06-15T05:04:18.763 回答