Agrupar en un campo todos los registros que encuentre separados por ";"

20/09/2017 - 14:04 por Rodrigo Garcia | Informe spam
Estoy cruzando dos tablas que tienen 2 columnas cada una. Una de las tablas tiene duplicados y necesito tener asociado a un identificador todos los valores existentes en la otra tabla pero separados por ";" en un único registro para no tener registros duplicados por el primer identificador.

¿Cómo podría hacer esto? He leído por ahí que se puede hacer con algo de código VBA o similar, pero ni idea del código en concreto y después como invocarlo para que al ejecutar la consulta, me apareciera la información como necesito.

Por si no me he explicado bien, intento ilustrar la necesidad con un ejemplo:

Tabla 1 --> El campo Columna A no tiene duplicados
Columna A; Columna B
Tabla 2 --> Para un mismo valor del campo Columna C, hay varios valores de Columna D
Columna C; Columna D

Cruzo ambas tablas por Columna A y Columna C generando una tabla con los campos
Columna A; Columna B; y Columna D, el problema es que se me producen duplicados basándome en el campo Columna A porque hay varios valores de Columna D asociados al valor de Columna A y C.

Lo que necesitaría sería crearme una columna adicional X que contuviera los valores de Columna D que tuvieran a su vez el mismo valor de Columna C. Dichos valores deberían estar separados por ";" para separarlos, de esa forma, la tabla resultando con los campos Columna A, Columna B y Columna X, no tendría duplicados.

Gracias
 

Leer las respuestas

#1 Rodrigo Garcia
20/09/2017 - 15:26 | Informe spam
He visto por ahí algún código como este (visto en http://microsoft.public.es.access.n...duplicados):

Public Sub LeerCampo1()

Dim cnn As Connection
Dim rst As Recordset
Dim sSQL As String
Dim sAcumular As String

Set cnn = CurrentProject.Connection
Set rst = New Recordset
sSQL = "Select Campo1 from Tabla1"
rst.Open sSQL, cnn
Do While Not rst.EOF
&&&&sAcumular = sAcumular & rst!Campo1
Loop
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing

End Sub

También en esta otra página he visto otro ejemplo:

https://social.technet.microsoft.co...um=exceles

Sinceramente, no entiendo nada. Si pegara este código en un módulo, tampoco sabría como llamarlo. ¿Alguna recomendación? Entiendo que es un problema o necesidad relativamente común.

Preguntas similares