[ACCESO] Concatenar completamente una columna
ResueltoLaConcatenation -
Hola,
No sé si esto debe hacerse a través de SQL o VBA (acepto cualquier opción), pero estoy atascado en algo que probablemente sea simple. Cuando busco, me encuentro con cosas más complicadas.
Busco 'simplemente' concatenar toda una columna de una tabla en una sola celda, separada por pipes "|", en toda una columna de una consulta.
Ejemplo (la columna 2 está ahí solo para especificar que tengo varias columnas en mi tabla):
Quiero que los valores de la columna1 de Ma_Table se concatenen completamente y se separen por pipes, en todas las celdas de la columna2 de Ma_Consulta.
Tabla: Ma_Table
Columna1 Columna2
A 1
B 2
C 3
D 4
Resultado deseado:
Consulta: Ma_Consulta
Columna1 Columna2
Dato 1 columna 1 A|B|C|D
Dato 2 columna 1 A|B|C|D
Dato 3 columna 1 A|B|C|D
Dato 4 columna 1 A|B|C|D
¡Espero haber sido lo suficientemente claro en mi solicitud!
Gracias de antemano.
2 respuestas
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
hola,
¿en qué caes? ¿has probado?
-
Hola,
Si la pregunta es '¿he intentado por mí mismo?', lamentablemente sí, siempre intento antes de pedir, de lo contrario no hay progreso :D
He intentado varias cosas provenientes de diversos temas en foros, pero no he podido encontrar un tema que correspondiera a mi necesidad, así que he tenido que hacer pruebas y trastear cada vez, pero sin ningún resultado que se acerque, ni de cerca ni de lejos, a lo que busco..
Gracias por la atención prestada a mi problema :)
Probablemente imaginas erróneamente que es muy simple.
Muéstranos lo que has intentado y lo que has obtenido, sin duda podremos ayudarte.
Por si acaso, puedes inspirarte en esto: https://stackoverflow.com/questions/54328595/access-vba-concatenate-single-column-query-into-a-single-line-result
Mi respuesta parece haberse volatilizado..
Gracias, ¡tu enlace me ha llevado a una pista!
De hecho, al ver las diferentes propuestas en tu enlace, recordé un trozo de código que había utilizado para otra cosa. Lo he adaptado y después de un tiempo y numerosos fracasos, ¡logré hacer funcionar la bestia!
ublic Function Concatenation() As String Dim res As DAO.Recordset Dim sql As String 'Selecciona la columna Ma_colonne de la tabla Ma_Table sql = "SELECT Ma_colonne FROM Ma_Table" Set res = CurrentDb.OpenRecordset(sql) 'Concatena los diferentes registros While Not res.EOF Concatenation = Concatenation & res.Fields(0).Value & "|" res.MoveNext Wend 'Elimina el último | Concatenation = Left(Concatenation, Len(Concatenation) - 1) 'libera la memoria Set res = Nothing End Function
Y luego llamé a la función en mi consulta.
-
-
Hola,
Para concatenar con letras o símbolos particulares, la respuesta es simple. Hay que introducir '& "' y ' " &' entre cada elemento a concatenar. Por ejemplo: Col1 & " | " & Col2 & " | " & Col3 & " |" & etc.
Para concatenar datos que no pertenecen al mismo registro, simplemente no es posible. Esa es una particularidad de los SGBD.
Buen día