Acessando linhas em um conjunto de registros hierárquico (exemplo)
O exemplo a seguir mostra as etapas necessárias para acessar linhas em um conjunto de registros hierárquico:
objetos Recordset das tabelas autores e titleauthor estão relacionados pela ID do Autor.
O loop externo exibe o primeiro e o último nome de cada autor, estado e identificação.
O Recordset acrescentado para cada linha é recuperado da coleção Campos e atribuído a rstTitleAuthor.
O loop interno exibe quatro campos de cada linha no Recordset anexado.
A propriedade StayInSync é configurada para false para fins de ilustração, para que você possa ver a mudança de capítulo explicitamente em cada iteração do loop externo. Para tornar o exemplo de código mais eficiente, você pode mover a atribuição na etapa 3 antes da primeira linha na etapa 2, de modo que a atribuição seja executada apenas uma vez. Em seguida, defina a propriedade StayInSync como verdadeiro, de modo que rstTitleAuthor será alterado implicitamente e automaticamente para o capítulo correspondente sempre que rst passar para uma nova linha.
Exemplo
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
Consulte Também
Visão geral de Modelagem de DadosObjeto de CampoColeção de Campos (ADO)Microsoft Data Shaping Service for OLE DB (Provedor de Serviços do ADO)Objeto Recordset (ADO)Provedores Necessários para a Modelagem de DadosCláusula SHAPE APPENDComandos SHAPE em GeralCláusula SHAPE COMPUTEFunções Visual Basic for Applications