Option Compare Database ‘ para que se utilicen las opciones de la configuración regional
Option Explicit ‘ esto exigirá que se declaren las variables, evita errores
'la función en si misma
Public Function ConcatenarActiv(La_Activ As Long) As String
'esto crea una función que necesitara un dato (parámetro) de tipo entero largo (un numero) y devolverá una cadena de texto
'Dimensionamos (creamos) la variable, un objeto recordset (símil de una tabla) para el resto se reutilizan las que ya existen
Dim Tbl_Temp As DAO.Recordset
'Le asignamos los datos y lo abrimos para: solo lectura
Set Tbl_Temp = CurrentDb.OpenRecordset("Select Nomb From Lista_cp_activ Where Activ =" & La_Activ, , dbReadOnly)
'Verificamos que tiene datos, si no los tiene salimos
If Tbl_Temp.RecordCount = 0 Then Exit Function
' tiene, lo 'agitamos' para que ninguno se oculte (símil de ‘pasar lista’)
Tbl_Temp.MoveLast: Tbl_Temp.MoveFirst
'Lo recorremos y creamos la lista que iremos asignado a la función
Do Until Tbl_Temp.EOF ' mientras no se llega al final
'con esta línea añadimos un separador si hay datos en la variable
If Len(ConcatenarActiv) <> 0 Then ConcatenarActiv = ConcatenarActiv & ", "
' añadimos el nombre
ConcatenarActiv = ConcatenarActiv & Tbl_Temp!Nomb
' vamos al siguiente
Tbl_Temp.MoveNext
' repetimos el bucle
Loop
'hemos finalizado, cerramos el recordset ( aunque sea de solo lectura es recomendable hacerlo)
Tbl_Temp.Close
' limpiamos el espacio de memoria utilizado (es importante no dejar atrás basura
Set Tbl_Temp = Nothing
‘aquí finaliza la función
' Se la utilizara así: ConcatenarActiv([aquí un número o una variable numérica, la actividad])
' Ejemplo===>> Participantes: ConcatenarActiv([activ]), la consulta deberá filtrar (no se necesita agrupar) las actividades y presentar solo una de cada.
End Function