共用方式為


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

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

  1. authorstitleauthor 資料表中的 ordset 會依作者識別碼相關聯。

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

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

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

基於圖例的用途,StayInSync 屬性會設定為 false,因此您可以在外部迴圈的每個反覆項目中明確看到章節變更。 若要讓程式碼範例更有效率,您可以將步驟 3 中的指派移到步驟 2 中的第一行前面,讓指派僅執行一次。 然後,將 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

另請參閱

資料成形概觀Field 物件Fields 集合 (ADO)正式 Shape 文法Microsoft Data Shaping Service for OLE DB (ADO 服務提供者)Recordset 物件 (ADO)資料成形所需的提供者Shape APPEND Clause一般 Shape 命令Shape COMPUTE 子句Visual Basic for Applications 函式