Advertisement
Advertisement
| 07.27.2008 at 07:54PM PDT, ID: 23599642 |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: |
Given a stored proc that returns multiple "batches" of records.
-- Substitute your SELECTs as needed
CREATE PROCEDURE dbo.zzzMultiSelect
AS
BEGIN
select 'COL1-1' union select 'COL1-2' union select 'COL1-3'
select 'COL2-1' union select 'COL2-2' union select 'COL2-3'
select 'COL3-1' union select 'COL3-2' union select 'COL3-3'
select 'COL4-1' union select 'COL4-2' union select 'COL4-3'
END
' Modify the connection string as needed. This sample macro populates 4 columns as per your specifications to the ActiveSheet.
' Requires a reference to "Microsoft ActiveX Data Objects 2.x" in Tools -> References
Sub MultiRecordsetToXL()
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset
Dim i As Integer
Dim ColArr As Variant
cn.Open "Driver=SQL Server;Server=<YourServer>;Database=<YourDB>"
' See www.connectionstrings.com for more info as needed
ColArr = Array("B", "E", "H", "I")
i = 0
If cn.State = adStateOpen Then
With cmd
' set the command object properties
.ActiveConnection = cn
.CommandText = "zzzMultiSelect"
.CommandType = adCmdStoredProc
' .Parameters("@CustomerID").Value = "ALFKI"
Set rs = .Execute
Do
If rs Is Nothing Then
Exit Do
Else
Cells(1, ColArr(i)).CopyFromRecordset rs
End If
i = i + 1
Set rs = rs.NextRecordset
Loop
End With
End If
If Not rs Is Nothing Then
If rs.State = adStateOpen Then
rs.Close
End If
End If
If cn.State = adStateOpen Then
cn.Close
End If
Set cmd = Nothing
Set cn = Nothing
Set rs = Nothing
End Sub
|