Juntar en un campo otros campos de varios registros

13/04/2011 - 17:17 por carlos batata | Informe spam
Lo que necesito hacer, de una tabla de Socios y otra enganchada con la
Familia del Socio, en una consulta de creación de tabla juntar todos
los Familiares del socio (nombre solamente separados por comas) en un
campo de la nueva tabla con otros datos del Socio (nombre, domicilio,
localidad, etc.). Es para poder imprimirlos, ya que si los pongo en
detalle de un informe (recibo del socio que figuran los familiares)
los nombres de estos se imprimen en forma vertical uno debajo de otro
y hace un recibo largo y variable en altura, al estar tods en un
campo, los pondria en algun lugar del informe.

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
14/04/2011 - 17:36 | Informe spam
Hola
Podrías hacer una función a la cual le pasas como parámetro, el ID del
socio. Dicha función devuelve un string.
Lo que hace ésta función, es recuperar un recordset con los familiares
del socio cuyo ID se ha pasado como argumento. Recorres dicho
recordset y en cada pasa, concatenas el nombre del familiar a una
variable de texto manteniendo los datos que previamente se han leido.
Una vez terminado se devuelve dicha variable como salida de la
función.
Espero te sirva.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 carlos batata
15/04/2011 - 03:38 | Informe spam
On 14 abr, 12:36, José Mª Fueyo wrote:
Hola
Podrías hacer una función a la cual le pasas como parámetro, el ID del
socio. Dicha función devuelve un string.
Lo que hace ésta función, es recuperar un recordset con los familiares
del socio cuyo ID se ha pasado como argumento. Recorres dicho
recordset y en cada pasa, concatenas el nombre del familiar a una
variable de texto manteniendo los datos que previamente se han leido.
Una vez terminado se devuelve dicha variable como salida de la
función.
Espero te sirva.

Salu2
José Mª Fueyo
[MS MVP Access]



Me parece buena idea, pero no se como hacerlo, ni en que lugar,
(consulta?), me podrias indicar y darme algun ejemplo, por favor.
Gracias, Jose
Respuesta Responder a este mensaje
#3 Pancho
17/04/2011 - 19:43 | Informe spam
On 15 abr, 03:38, carlos batata wrote:
On 14 abr, 12:36, José Mª Fueyo wrote:

> Hola
> Podrías hacer una función a la cual le pasas como parámetro, el ID del
> socio. Dicha función devuelve un string.
> Lo que hace ésta función, es recuperar un recordset con los familiares
> del socio cuyo ID se ha pasado como argumento. Recorres dicho
> recordset y en cada pasa, concatenas el nombre del familiar a una
> variable de texto manteniendo los datos que previamente se han leido.
> Una vez terminado se devuelve dicha variable como salida de la
> función.
> Espero te sirva.

> Salu2
> José Mª Fueyo
> [MS MVP Access]

Me parece buena idea, pero no se como hacerlo, ni en que lugar,
(consulta?), me podrias indicar y darme algun ejemplo, por favor.
Gracias, Jose



Hola.
Yo haria algo asi:
En el formulario donde tenes el listado de tus socios (IdSocio,
NombreSocio, ApellidoSocio, ...) es hacer el infome pones un boton de
comando y en su procedimiento AL HACER CLIC pones algo asi:

Me.NombreSocio & " " & Me.ApellidosSocio ... & MiFuncion(IdSocio)
Respuesta Responder a este mensaje
#4 Pancho
17/04/2011 - 20:02 | Informe spam
On 17 abr, 19:43, Pancho wrote:
On 15 abr, 03:38, carlos batata wrote:









> On 14 abr, 12:36, José Mª Fueyo wrote:

> > Hola
> > Podrías hacer una función a la cual le pasas como parámetro, el ID del
> > socio. Dicha función devuelve un string.
> > Lo que hace ésta función, es recuperar un recordset con los familiares
> > del socio cuyo ID se ha pasado como argumento. Recorres dicho
> > recordset y en cada pasa, concatenas el nombre del familiar a una
> > variable de texto manteniendo los datos que previamente se han leido.
> > Una vez terminado se devuelve dicha variable como salida de la
> > función.
> > Espero te sirva.

> > Salu2
> > José Mª Fueyo
> > [MS MVP Access]

> Me parece buena idea, pero no se como hacerlo, ni en que lugar,
> (consulta?), me podrias indicar y darme algun ejemplo, por favor.
> Gracias, Jose






Hola.
Yo haria algo asi:
En el formulario donde tenes el listado de tus socios (IdSocio,
NombreSocio, ApellidoSocio, ...) pones un boton de
comando y en su procedimiento AL HACER CLIC pones algo asi:

Me.NombreSocio & " " & Me.ApellidosSocio ... & MiFuncion(IdSocio)

Luego en un Modulo MiFuncion pones:
Public Function MiFuncion(IdSocio as integer) as String
Dim oRS as New ADODB.Recordset
Dim oCon as ADODB.Connection
Dim cLista as String
Dim cTabla as String
Dim cFiltro

Set oCon=CurrentProjection.Connection
cTabla="TablaConLosFamiliares"
cFiltro="IdSocio = " & IdSocio

oRS.Open cTabla, oCon, adOpenForward, adLockReadOnly
oRS.Filter = cFiltro
i=0
If Not (oRS.EOF AND oRS.BOF) Then

Do While Not oRS.EOF
i=i+1
if i = 1 then
cLista= oRS.Nombre
else
cLista= cLista & " " & oRS.Apellidos ","
oRS.MoveNext
Loop

MiFuncion = cLista
Respuesta Responder a este mensaje
#5 carlos batata
18/04/2011 - 17:15 | Informe spam
On 17 abr, 15:02, Pancho wrote:
On 17 abr, 19:43, Pancho wrote:









> On 15 abr, 03:38, carlos batata wrote:

> > On 14 abr, 12:36, José Mª Fueyo wrote:

> > > Hola
> > > Podrías hacer una función a la cual le pasas como parámetro, el ID del
> > > socio. Dicha función devuelve un string.
> > > Lo que hace ésta función, es recuperar un recordset con los familiares
> > > del socio cuyo ID se ha pasado como argumento. Recorres dicho
> > > recordset y en cada pasa, concatenas el nombre del familiar a una
> > > variable de texto manteniendo los datos que previamente se han leido.
> > > Una vez terminado se devuelve dicha variable como salida de la
> > > función.
> > > Espero te sirva.

> > > Salu2
> > > José Mª Fueyo
> > > [MS MVP Access]

> > Me parece buena idea, pero no se como hacerlo, ni en que lugar,
> > (consulta?), me podrias indicar y darme algun ejemplo, por favor.
> > Gracias, Jose

Hola.
Yo haria algo asi:
En el formulario donde tenes el listado de tus socios (IdSocio,
NombreSocio, ApellidoSocio, ...) pones un boton de
comando y en su procedimiento AL HACER CLIC pones algo asi:

Me.NombreSocio & " " & Me.ApellidosSocio ... & MiFuncion(IdSocio)

Luego en un Modulo MiFuncion pones:
Public Function MiFuncion(IdSocio as integer) as String
Dim oRS as New ADODB.Recordset
Dim oCon as ADODB.Connection
Dim cLista as String
Dim cTabla as String
Dim cFiltro

Set oCon=CurrentProjection.Connection
cTabla="TablaConLosFamiliares"
cFiltro="IdSocio = " & IdSocio

oRS.Open cTabla, oCon, adOpenForward, adLockReadOnly
oRS.Filter = cFiltro
i=0
If Not (oRS.EOF AND oRS.BOF) Then

   Do While Not oRS.EOF
   i=i+1
   if i = 1 then
      cLista= oRS.Nombre
   else
      cLista= cLista & " " & oRS.Apellidos ","
   oRS.MoveNext
   Loop

MiFuncion = cLista



lo probé, pero en el primer signo & me da error de compilación, se
esperaba expresión y no me deja probar las instrucciones, en que estoy
errando?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida