Accesso alle righe in un recordset gerarchico (esempio)
Nell'esempio seguente vengono illustrati i passaggi necessari per accedere alle righe in un oggetto Recordset gerarchico :
gli oggetti Recordset degli autori e le tabelle titleauthor sono correlate dall'ID autore.
Il ciclo esterno visualizza il nome e il cognome, lo stato e l'identificazione di ogni autore.
Il Recordset aggiunto per ogni riga viene recuperato dalla raccolta Fields e assegnato a rstTitleAuthor.
Il ciclo interno visualizza quattro campi da ciascuna riga nel Recordset aggiunto.
La proprietà StayInSync è impostata su false a scopo illustrativo, in modo da visualizzare esplicitamente la modifica del capitolo in ogni iterazione del ciclo esterno. Per rendere più efficiente l'esempio di codice, è possibile spostare l'assegnazione nel passaggio 3 prima della prima riga del passaggio 2, in modo che l'assegnazione venga eseguita una sola volta. Impostare quindi la proprietà StayInSync su true, in modo che rstTitleAuthor cambierà in modo implicito e automatico al capitolo corrispondente ogni volta che rst si sposta in una nuova riga.
Esempio
Sub datashape()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset
cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=MSDASQL;" & _
"Data Source=SRV;Integrated Security=SSPI;Database=Pubs"
' STEP 1
rst.StayInSync = FALSE
rst.Open "SHAPE {select * from authors} " & _
"APPEND ({select * from titleauthor} " & _
"RELATE au_id TO au_id) AS chapTitleAuthor", _
cnn
' STEP 2
While Not rst.EOF
Debug.Print rst("au_fname"), rst("au_lname"), _
rst("state"), rst("au_id")
' STEP 3
Set rstTitleAuthor = rst("chapTitleAuthor").Value
' STEP 4
While Not rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0), rstTitleAuthor(1), _
rstTitleAuthor(2), rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Wend
rst.MoveNext
Wend
End Sub
Vedere anche
Cenni preliminari sul Data ShapingOggetto FieldRaccolta campi (ADO)Grammatica formale della formaMicrosoft Data Shaping Service for OLE DB (ADO Service Provider)Oggetto Recordset (ADO)Provider obbligatori per il Data ShapingClausola SHAPE APPENDComandi Shape in generaleClausola SHAPE COMPUTEFunzioni di Visual Basic for Applications