StayInSync プロパティの例 (VB)

この例では、階層 Recordset 内の行へのアクセスを簡単にする StayInSync プロパティの機能を示します。

外側のループで、各 author の姓名、州、および ID が表示されます。各行に追加された RecordsetFields コレクションから取得され、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