Partage via


Accès aux lignes dans un recordset hiérarchique (exemple)

L’exemple suivant montre les étapes nécessaires pour accéder aux lignes d’un jeu d’enregistrements hiérarchique :

  1. ensembles d'enregistrements des tables authors et titleauthor sont liés par l'ID de l'auteur.

  2. La boucle externe affiche le prénom, le nom de famille, l’état et l’identification de chaque auteur.

  3. Le Recordset ajouté pour chaque ligne est récupéré à partir de la collection Fields et affecté à rstTitleAuthor.

  4. La boucle interne affiche quatre champs de chaque ligne du jeu d'enregistrements ajouté .

La propriété StayInSync est définie sur false à des fins d’illustration, afin que vous puissiez voir le chapitre changer explicitement dans chaque itération de la boucle externe. Pour rendre l’exemple de code plus efficace, vous pouvez déplacer l’affectation à l’étape 3 avant la première ligne de l’étape 2, afin que l’affectation ne soit effectuée qu’une seule fois. Définissez ensuite la propriété StayInSync sur true, afin que rstTitleAuthor passe implicitement et automatiquement au chapitre correspondant chaque fois que passe à une nouvelle ligne.

Exemple

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

Voir aussi

vue d’ensemble de la mise en forme des donnéesObjet de champcollection de champs (ADO)Le service de mise en forme de données MicrosoftService de mise en forme des données pour OLE DB (fournisseur de services ADO)Objet Recordset (ADO)Fournisseurs obligatoires pour la mise en forme des donnéesClause SHAPE APPENDCommandes de forme en généralClause Shape COMPUTEVisual Basic for Applications fonctions