Manipular campos multivalor con DAOManipulate multivalued fields with DAO

Los campos multivalor están representados como objetos Recordset en DAO.Multivalued fields are represented as Recordset objects in DAO. El conjunto de registros para un campo es secundario del conjunto de registros para la tabla que contiene el campo multivalor.The recordset for a field is a child of the recordset for the table that contains the multivalued field. Para crear una instancia del conjunto de registros secundario, use la propiedad Value del campo multivalor como se indica a continuación.To instantiate the child recordset, use the Value property of the multivalued field as follows.

Set childRs = rs.<multi-valued field>.Value

En el siguiente ejemplo de código se muestra cómo crear una instancia del conjunto de registros secundario del campo AssignedTo de la tabla Tasks.The following code example shows how to instantiate the child recordset of the AssignedTo field of the Tasks table.

Set rs  = db.OpenRecordSet("Tasks") 
Set childRs = rs.AssignedTo.Value 

El conjunto de registros secundario tiene la misma funcionalidad que cualquier objeto Recordset de DAO.The child recordset has the same functionality as any DAO Recordset object.

En el ejemplo de código siguiente se muestra cómo recorrer en iteración un objeto Recordset primario y su objeto Recordset secundario.The following code example shows how to iterate through a parent recordset and its child recordset. Este ejemplo imprime las tareas de la tabla Tasks (Tareas) junto con las personas asignadas a dichas tareas en la ventana Inmediato.The example prints the tasks in the Tasks table along with the people assigned to the tasks to the Immediate window.

Sub BrowseMultiValueField() 
   Dim db As Database 
   Dim rs As Recordset 
   Dim childRS As Recordset 
     
   Set db = CurrentDb() 
     
   ' Open a Recordset for the Tasks table. 
   Set rs = db.OpenRecordset("Tasks") 
   rs.MoveFirst 
     
   Do Until rs.EOF 
      ' Print the name of the task to the Immediate window. 
      Debug.Print rs!TaskName.Value 
         
      ' Open a Recordset for the multivalued field. 
      Set childRS = rs!AssignedTo.Value 
 
         ' Exit the loop if the multivalued field contains no records. 
         Do Until childRS.EOF 
             childRS.MoveFirst 
                     
             ' Loop through the records in the child recordset. 
             Do Until childRS.EOF 
                 ' Print the owner(s) of the task to the Immediate  
                 ' window. 
                 Debug.Print Chr(0), childRS!Value.Value 
                 childRS.MoveNext 
             Loop 
         Loop 
      rs.MoveNext 
   Loop 
End Sub

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.