excel工作表中只显示一个选择查询

时间:2012-06-11 12:17:17

标签: excel sql-server-2005 excel-2007

我在Excel 2007中调用了一个存储过程(SQL Server 2005)。此SP有两个select语句,但是在excel工作表中,显示了第一个语句的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果存储过程有两个select语句,则返回两个记录集。确保您同时写入工作表。您还应该验证两个select语句都返回行。

注意:如果您想使用VBA尝试此操作,本书Professional Excel Development的第19章专门用于与SQL Server进行交互。本章将引导您完成连接到数据库,执行存储过程以及将结果写回工作簿的过程。提供了您需要的所有代码,以及对其功能的详细解释。如果你是VBA的新手,那么这本书就列在你应该选择的那份书上。查看其他人good books to learn 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

答案 1 :(得分:0)

我使用VBA用结果集填充工作表,这解决了这个问题。我还必须编写代码来迭代所有结果集。