Zugreifen auf Zeilen in einem hierarchischen Recordset (Beispiel)
Das folgende Beispiel zeigt die Schritte, die erforderlich sind, um auf Zeilen in einem hierarchischen Recordset-zuzugreifen:
Recordset- Objekte aus den Autoren und Titelautortabellen Tabellen sind mit der Autoren-ID verknüpft.
Die äußere Schleife zeigt den Vor- und Nachnamen, den Status und die Identifikation jedes Autors an.
Das hinzugefügte Recordset für jede Zeile wird aus der Fields-Sammlung abgerufen und dem rstTitleAuthorzugewiesen.
Die innere Schleife zeigt vier Felder aus jeder Zeile im angefügten Recordset-an.
die StayInSync-Eigenschaft ist für Illustrationszwecken auf false festgelegt, sodass Sie die Kapiteländerung bei jeder Iteration der äußeren Schleife explizit sehen können. Um das Codebeispiel effizienter zu gestalten, können Sie die Zuordnung in Schritt 3 vor der ersten Zeile in Schritt 2 verschieben, damit die Zuordnung nur einmal ausgeführt wird. Legen Sie dann die StayInSync--Eigenschaft auf truefest, sodass rstTitleAuthor implizit und automatisch in das entsprechende Kapitel wechselt, wenn rst zu einer neuen Zeile wechselt.
Beispiel
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
Siehe auch
Überblick über die DatenstrukturierungField ObjectFields-Auflistung (ADO)Formale Shape-GrammatikMicrosoft Data Shaping Service for OLE DB (ADO-Dienstanbieter)Recordset-Objekt (ADO)Erforderliche Anbieter für die DatenstrukturierungShape APPEND-KlauselShape-Befehle im AllgemeinenShape COMPUTE-KlauselVisual Basic for Applications-Funktionen