存取階層式記錄集中的資料列 (範例)

下列範例顯示存取階層 式 Recordset中資料列所需的步驟:

  1. 作者和titleauthor資料表中的Recordset物件是由作者識別碼所關聯。

  2. 外部迴圈會顯示每個作者的名字和姓氏、狀態和識別。

  3. 系統會從Fields集合擷取每個資料列的附加Recordset,並指派給rstTitleAuthor

  4. 內部迴圈會顯示附加 Recordset中每個資料列的四個欄位。

針對圖例目的, StayInSync 屬性會設定為 false ,因此您可以在外部迴圈的每個反復專案中明確看到章節變更。 若要讓程式碼範例更有效率,您可以在步驟 2 的第一行之前移動步驟 3 中的指派,以便只執行一次指派。 然後將StayInSync屬性設定為true,以便每當殘響移至新資料列時,rstTitleAuthor會隱含且自動變更為對應的章節。

範例

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

另請參閱

資料成形概Field 物件欄位集合 (ADO) 正式圖形文法Microsoft Data Shaping Service for OLE DB (ADO Service provider) Recordset 物件 (ADO) 資料成形圖形 APPEND 子句圖形命令的必要提供者在一般Shape COMPUTE 子句Visual Basic for Applications 函式中