Access - Concatenar cadenas en group by

   
Vista:

Concatenar cadenas en group by

Publicado por José (13 intervenciones) el 05/11/2008 17:50:26
Hola,

Tengo una tabla con un campo texto. Quisiera una consulta que me saliera una sola fila con la concatenación del campo texto de todos los registros.

Eje.

email
juan@correo.es
jose@correo.es
maria@correo.es
.
.
.
pepe@correo.es

en la consulta quiero q me salga una sola linea que sea

juan@correo.es;jose@correo.es;maria@correo.es;...;pepe@correo.es;

Un saludo y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Concatenar cadenas en group by

Publicado por Enrique (1299 intervenciones) el 06/11/2008 16:43:45
En una consulta no se me ocurre ahora mismo como hacerlo, pero podrías grabar el campo con la concatenación de todos los email en una nueva Tabla que solo tenga un campo.

Nueva Tabla: tblMezcla
Campo: TodosEmail (Tipo Texto, tamaño: 255 caracteres o Tipo Memo)

Y en el Evento Al hacer click de un botón de Comando situado en un Formulario:

Private Sub Comando1_Click()
Dim rst As DAO.Recordset, rst1 As DAO.Recordset
Dim Filtro As String, Todos As String, K As Long
Todos = ""
Filtro = "Select email From TuTabla Where email <> Null"
Set rst = CurrentDb.OpenRecordset(Filtro)
rst.MoveFirst
rst.Edit
For K = 0 To rst.RecordCount - 1
Todos = Todos & rst!email & ";"
rst.MoveNext
Next K
rst.Close: Set rst = Nothing
Todos = Mid(Todos, 1, Len(Todos) - 1) 'Quita el ; del final

'Graba el campo "TodosEmail" con la mezcla de todos los email en la Tabla "tblMezcla"
Set rst1 = CurrentDb.OpenRecordset("tblMezcla", dbOpenDynaset)
If rst1.RecordCount > 0 Then rst1.MoveFirst: rst1.Delete
rst1.AddNew
rst1!TodosEmail = Todos
rst1.Update
rst1.Close: Set rst1 = Nothing
MsgBox "Operación realizada correctamente." & vbCrLf & _
"Consulte la Tabla ''tblMezcla''", vbInformation, "Grabación de datos"
End Sub

Suerte
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Concatenar cadenas en group by

Publicado por José Antonio (13 intervenciones) el 19/11/2008 13:54:42
Hola,

No hay ninguna forma de hacerlo mediante consulta. Con números sí se puede hacer, pero con cádenas me da el error con el operador de unión. Con número sería algo así:

select sum(campo_numero)
from tabla1
group by 1;

Si alguien me puede ayudar, se lo agradecería.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar