存取階層式記錄集中的數據列 (範例)
下列範例顯示存取階層式 Recordset數據列所需的步驟:
Recordset 物件是從 作者 和 titleauthor 資料表中取得,並且依作者 ID 建立關聯。
外部迴圈會顯示每位作者的名字和姓氏、狀態和身份識別。
系統會從 Fields 集合中擷取每一列的附加的 Recordset,並指派給 rstTitleAuthor。
內部循環會顯示附加 Recordset中每個數據列的四個字段。
StayInSync 屬性被設定為 false,以便您能在外部迴圈的每次迭代中明確看到章節變更。 若要讓程式代碼範例更有效率,您可以在步驟 2 的第一行之前移動步驟 3 中的指派,以便只執行一次指派。 然後將 StayInSync 屬性設定為 true,讓 rstTitleAuthor 在 rst 移至新數據列時,隱含且自動變更為對應的章節。
例
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 函式