1

Excel 2007でストアドプロシージャ(SQL Server 2005)を呼び出しました。このSPには2つのselectステートメントがありますが、Excelワークシートでは、最初のステートメントの結果が表示されています。何かご意見は?

4

2 に答える 2

0

ストアドプロシージャに2つのselectステートメントがある場合、2つのレコードセットが返されます。両方をワークシートに書き込んでいることを確認してください。また、両方のselectステートメントが行を返していることを確認する必要があります。

注: VBAを使用してこれを試してみたい場合は、 『 Professional Excel Development』の第19章で、SQLServerとの対話について説明しています。この章では、データベースへの接続、ストアドプロシージャの実行、および結果をブックに書き戻す方法について説明します。必要なすべてのコードが、その機能の適切な説明とともに提供されます。また、VBAを初めて使用する場合は、この本を選択する必要があります。他の人のためにExcelVBAを学ぶために良い本をチェックしてください。

ストアドプロシージャから5つのレコードセットを返すサブの一部の例を次に示します。

     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 に答える