Acceso a las filas en un conjunto de registros jerárquico (ejemplo)
En el ejemplo siguiente se muestran los pasos necesarios para acceder a las filas de un conjunto de registros jerárquico:
Los objetos Recordset de las tablas authors y titleauthor están relacionados con el identificador de creador.
El bucle externo muestra el nombre y apellidos, el estado y la identificación de cada autor.
El objeto Recordset anexado para cada fila se recupera de la colección Fields y se asigna a rstTitleAuthor.
El bucle interno muestra cuatro campos de cada fila del conjunto de registros anexado.
La propiedad StayInSync se establece en false para fines de ilustración, de modo que pueda ver el cambio de capítulo explícitamente en cada iteración del bucle externo. Para que el ejemplo de código sea más eficaz, puede mover la asignación del paso 3 antes de la primera línea del paso 2, de modo que la asignación se realice solo una vez. A continuación, establezca la propiedad StayInSync en true, de modo que rstTitleAuthor cambie implícita y automáticamente al capítulo correspondiente cada vez que rst se mueva a una nueva fila.
Ejemplo
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 también
Información general sobre la forma de datosObjeto FieldsColección Fields (ADO)Gramática formal de formaDatos de Microsoft para dar forma al servicio para información general acerca de OLE DBObjeto Recordset (ADO)Proveedores deseados para dar forma a datosCláusula APPENDComandos de forma en generalCláusula COMPUTE de formaVisual Basic para las funciones de aplicaciones