共用方式為


存取階層式記錄集中的數據列 (範例)

下列範例顯示存取階層式 Recordset數據列所需的步驟:

  1. Recordset 物件是從 作者titleauthor 資料表中取得,並且依作者 ID 建立關聯。

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

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

  4. 內部循環會顯示附加 Recordset中每個數據列的四個字段。

StayInSync 屬性被設定為 false,以便您能在外部迴圈的每次迭代中明確看到章節變更。 若要讓程式代碼範例更有效率,您可以在步驟 2 的第一行之前移動步驟 3 中的指派,以便只執行一次指派。 然後將 StayInSync 屬性設定為 true,讓 rstTitleAuthorrst 移至新數據列時,隱含且自動變更為對應的章節。

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

另請參閱

數據成形概觀欄位物件欄位集合 (ADO)正式圖形文法Microsoft Data Shaping Service for OLE DBRecordset 物件 (ADO)數據成形所需的提供者Shape APPEND 子句一般成形命令Shape COMPUTE 子句Visual Basic for Applications 函式