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