Obtener acceso a las filas de un objeto Recordset jerárquico

Office 2013

Última modificación: miércoles, 29 de junio de 2011

Hace referencia a: Access 2013 | Office 2013

En el ejemplo siguiente, se muestran los pasos necesarios para obtener acceso a filas de un objeto Recordset jerárquico:

  1. Los objetos Recordset de las tablas authors y titleauthor están relacionados por identificador de autor.

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

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

  4. El bucle interno muestra cuatro campos de cada fila en el objeto Recordset anexado.

(La propiedad StayInSync se establece en FALSE (falso) como ejemplo, de modo que se pueda ver el cambio de capítulo explícitamente en cada iteración del bucle externo.Sin embargo, el ejemplo será más eficiente si la asignación en el paso 3 se traslada antes de la primera línea del paso 2, para que la asignación sólo se realice una vez.A continuación, establezca la propiedad StayInSync en TRUE (verdadero) para que rstTitleAuthor cambie implícita y automáticamente al capítulo correspondiente siempre que rst pase 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;" & _ 
 "User Id=MyUserName;Password=MyPassword;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 

Mostrar:
© 2014 Microsoft