この例では、階層 Recordset 内の行へのアクセスを簡単にする StayInSync プロパティの機能を示します。
外側のループで、各 author の姓名、州、および ID が表示されます。各行に追加された Recordset が Fields コレクションから取得され、StayInSync プロパティによって、親のRecordset が新しい行に移動するたびに、自動的に rstTitleAuthor に割り当てられます。内側のループで、追加されたレコードセットの各行から 4 つのフィールドが表示されます。
Public Sub Main()
StayInSyncX
End Sub
Public Sub StayInSyncX()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "DSN=Pubs;Provider=MSDataShape;Data Provider=MSDASQL;uid=sa;pwd=;"
rst.StayInSync = True
rst.Open "SHAPE {select * from Authors} " & _
"APPEND ({select * from titleauthor}" & _
"RELATE au_id TO au_id) AS chapTitleAuthor", _
cnn, , , adCmdText
Set rstTitleAuthor = rst("chapTitleAuthor").Value
While Not rst.EOF
Debug.Print rst!au_fname & " " & rst!au_lname & " " & _
rst!state & " " & rst!au_id
While Not rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0) & " " & rstTitleAuthor(1) & " " & _
rstTitleAuthor(2) & " " & rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Wend
rst.MoveNext
Wend
End Sub