Article ID: 191575
Article Last Modified on 3/2/2005
Const strFileName As String = "C:\Orders.rst"
Private Sub Form_Load()
Dim cnNWindSQL As New ADODB.Connection
Dim rsCustomers As New ADODB.Recordset
Dim rsOrders As ADODB.Recordset
Dim strConn As String
Dim strSQL As String
On Error Resume Next
Kill strFileName
On Error GoTo 0
strConn = "Provider=MSDataShape;" & _
"Data Provider=SQLOLEDB;" & _
"Data Source=scep;" & _
"Initial Catalog=NWindSQL;"
cnNWindSQL.CursorLocation = adUseClient
cnNWindSQL.Open strConn, "sa", ""
If MsgBox("Use parameterized shape?", vbYesNo) = vbYes Then
strSQL = "SHAPE {SELECT * FROM Customers} " & _
"AS Customers APPEND " & _
"({SELECT * FROM Orders WHERE CustomerID = ?} " & _
"AS Orders RELATE CustomerID TO PARAMETER 0) " & _
"AS Orders"
Else
strSQL = "SHAPE {SELECT * FROM Customers} AS Customers " & _
"APPEND ({SELECT * FROM Orders} AS Orders " & _
"RELATE CustomerID TO CustomerID) AS Orders"
End If
With rsCustomers
.Open strSQL, cnNWindSQL, adOpenStatic, _
adLockReadOnly, adCmdText
Set rsOrders = !Orders.Value
If MsgBox("Retrieve all chapters?", vbYesNo) = vbYes Then
While Not .EOF
Debug.Print !CustomerID & " has " _
& rsOrders.RecordCount & " orders."
.MoveNext
Wend
End If
.Save strFileName
.Close
End With
Set rsCustomers = Nothing
cnNWindSQL.Close
Set cnNWindSQL = Nothing
End Sub
189657 HOWTO: Use the ADO SHAPE Command
Keywords: kbbug kbprb KB191575