Compartir a través de


Acceso a filas en un conjunto de registros jerárquico (ejemplo)

En el siguiente ejemplo se muestran los pasos necesarios para acceder a las filas en un Recordset jerárquico :

  1. objetos recordset de los autores de y tablas de titleauthor están relacionadas con el identificador de autor.

  2. El bucle externo muestra el nombre y apellidos, el estado y la identificación de cada autor.

  3. El Recordset anexado para cada fila se recupera de la colección Fields de y se asigna a rstTitleAuthor.

  4. 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 en el 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 siempre 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 el modelado de datosobjeto campocolección de campos (ADO)Gramática Formal de ModeladoServicio de Modelado de Datos de Microsoft para OLE DB (Proveedor de Servicios de ADO)objeto Recordset (ADO)proveedores necesarios para el modelado de datoscláusula APPEND de modeladocomandos de modelado en generalcláusula COMPUTE de modeladofunciones de Visual Basic para Aplicaciones