Access - Concatenar registros con un mismo ID

 
Vista:
sin imagen de perfil
Val: 16
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por José (4 intervenciones) el 12/03/2021 10:08:39
Hola, estoy intentando concatenar registros (CLAS_POT_1) de una tabla a partir de un campo cuyos registros se repiten (NREG_NEW) y sumar otro campo (POLY_AREA). En la imagen adjunta se puede visualizar más claramente.

Soy nuevo en ACCES y no consigo el resultado. Sí me podéis orientar un poco o ayudarme.

Gracias

Un saludo


POT_DUPLICADOS
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por Norberto (753 intervenciones) el 12/03/2021 12:27:22
Hola:

Debes de hacer una consulta de totales. Agrupas por NREG_NEW y CLAS_POT_1 y, para el campo POLY_AREA, realizas una suma.

Captura

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Concatenar registros con un mismo ID

Publicado por Anonimo (3316 intervenciones) el 12/03/2021 12:36:03
.- Utilizar el campo 'CLAS_POT_1' para filtrar (si se requiere filtrar para crear el subconjunto) o se crearan mas grupos de los necesarios

.- Agrupar por el campo 'NERG_NEW'

.- Sumar el campo 'POLY_AREA'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por José (4 intervenciones) el 12/03/2021 12:50:19
Muchas gracias,

lo único que al realizar esta agrupación pierdo la información de los distintos campos (CLAS_POT_1), sólo mantiene un sólo registro, me gustaría poder concatenarlos, es decir obtener estos tres registros en uno. Concatenando Sistemas Generales, Suelo No urbanizable y sistemas generales.

Un saludo


pot_dupli
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por Norberto (753 intervenciones) el 12/03/2021 13:10:35
Hola:

Define concatenar o pon una muestra de cómo quieres que salgan los resultados.

Un saludo,

Norberto.
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
sin imagen de perfil
Val: 16
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por José (4 intervenciones) el 12/03/2021 13:42:57
Hola,

Sí, lo que quiero obtener es el registro que aparece remarcado a partir de los 3 registros de arriba.

pot_dupli

Gracias

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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por Norberto (753 intervenciones) el 15/03/2021 14:45:00
Hola de nuevo:

Se me ocurre esta solución:

Creas una consulta tal que así:

Captura

Observarás que uso una función para obtener la concatenación de CLAS_POT_1. Esa función la defines en un módulo con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Compare Database
Option Explicit
 
Public Function ConcatenarCLAS_POT_1(NREG_NEW As String) As String
    Dim Concat As String, Rst As DAO.Recordset
    'Abrimos un recordset con todos los registros corespondientes a NREG_NEW
    Set Rst = CurrentDb.OpenRecordset("SELECT Tabla7.CLAS_POT_1 FROM Tabla7 WHERE NREG_NEW = '" & NREG_NEW & "';")
    Do While Not Rst.EOF    'lo recorremos
        If Concat = "" Then 'Si es la primera vez
            Concat = Rst!clas_pot_1 'Ponemos el valor de CLAS_POT_1
        ElseIf InStr(Concat, Rst!clas_pot_1) = 0 Then
            'En caso contrario, y si no existe ya ese texto,
            'lo añadimos
            Concat = Concat & " | " & Rst!clas_pot_1
        End If
        Rst.MoveNext
        DoEvents
    Loop
    ConcatenarCLAS_POT_1 = Concat 'Devolvemos el resultado
    Rst.Close   'Cerramos el recordset
    Set Rst = Nothing   'Vaciamos la variable
 
End Function

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Concatenar registros con un mismo ID

Publicado por Fernando (15 intervenciones) el 17/03/2021 12:59:06
Muchas gracias por este aporte! puede aplicarlo a mi necesidad perfectamente...
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
sin imagen de perfil
Val: 16
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Concatenar registros con un mismo ID

Publicado por José (4 intervenciones) el 17/03/2021 13:01:54
Muchas gracias, lo he resuelto con el código y módulo que has aportado

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
1
Comentar

Concatenar registros con un mismo ID

Publicado por Helena (1 intervención) el 28/10/2021 13:57:30
Hola Norberto,
Tengo un caso muy parecido y hay algo que no me funciona. Yo tengo muchos "NREG_NEW" distintos llamados "id_emisor" y quiero agrupar el campo "CLAS_POT" que es el "ID_unico_nido". Però me dice que la expresion no es correcta.. El problema me lo da en la frase:

Set Rst = CurrentDb.OpenRecordset("SELECT Nidos_todo.ID_unico_nido FROM Nidos_todo WHERE id_emisor = '" &id_emisor& "';")

Me ha funcionado si saco la parte a partir del WHERE, però entonces me ponia todos los Nidos_todo en cada id_emisor....

Que significan las comas (") (') y que hace el punto y coma?

Muchissimas gracias en adelantado.
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

Concatenar registros con un mismo ID

Publicado por Anonimo (3316 intervenciones) el 28/10/2021 14:49:06
---
Que significan las comas (") (') y que hace el punto y coma?
---

Las comas -dobles comillas- son los indicadores de que el dato es alfanumérico (texto)

Si se necesitan en una expresión delimitada también por dobles comillas (el caso del texto de una SQL), se utiliza en su lugar -y dentro de esa expresión- la comilla simple en su lugar (pero OJO Dentro-De-La-Expresión)

A = Pepe <- Pepe es texto = error
A="Pepe" <- correcto

Si el dato tiene que ir en un texto (la SQL) se tendrá que escribir así:

1
" Select ...... Where A = 'Pepe' And Pagado Is Null "

El punto y coma al final no tiene valor practico y será ignorado.

Lo exige el generador de consultas grafico de Access para identificar el final (también lo utiliza cuando se definen parámetros e identificar donde finalizan los parámetros y comienza la SQL que finalizara con otro punto y coma):

1
Parameters BBB As String; Select * From .... Were XXX = [AAA];

Se puede verificar con cualquier consulta generada con el asistente si se utiliza la 'vista SQL' y se le añaden parametros (variables que determinan el tipo y de las que solicitara el valor antes de ejecutar la sentencia si no los encuentra)
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

Concatenar registros con un mismo ID

Publicado por Raúl (1 intervención) el 31/03/2022 17:19:01
Gracias por tu trabajo, es de agradecer.

A mí me funciona perfectamente, pero la pregunta es.

¿Cómo debe constar la línea de código si lo que agrupamos es numérico y no texto? porque si lo agrupo por numérico me da error

El error señala que no coinciden los tipos de datos en la expresión de criterios y me lleva a esta línea

Set Rst = CurrentDb.OpenRecordset("SELECT Tabla7.CLAS_POT_1 FROM Tabla7 WHERE NREG_NEW = '" & NREG_NEW & "';")


Gracias
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

Concatenar registros con un mismo ID

Publicado por Anonimo (3316 intervenciones) el 31/03/2022 17:57:15
Es una 'pregunta en el aire' al no indicar a quien va dirigida, pero como es información básica ....

Access distingue los datos (o los clasifica) los mas típicos son:

Textos >>> entre comillas, sean simples o dobles // ejemplos 'Pedro Martínez' o "Pedro Martínez"

Números >>> sin marcadores // ejemplos 1 o 55 o 199.33 (en VBA el separador decimal es el punto, fuera de VBA el de la 'configuración regional')

Fechas >>> es un numero 'especial' para Access y el marcador es (#) // ejemplos #7/2/2022# o #7 feb 2022# ('traduce' todas las alternativas de la configuración regional)

Si NREG_NEW ha de ser interpretado como texto:
Set Rst = CurrentDb.OpenRecordset("SELECT Tabla7.CLAS_POT_1 FROM Tabla7 WHERE NREG_NEW = '" & NREG_NEW & "'")

Si NREG_NEW ha de ser interpretado como numero:
Set Rst = CurrentDb.OpenRecordset("SELECT Tabla7.CLAS_POT_1 FROM Tabla7 WHERE NREG_NEW = " & NREG_NEW)
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

Concatenar registros con un mismo ID

Publicado por Azahara (2 intervenciones) el 01/12/2023 16:49:18
Hola, he intentado adaptarlo a mi base pero no me funciona, para probarlos lo he puesto exactamente igual y al ejecutar la consulta me devuelve el mensaje : "La función Concaternar_Clas_POT_1 no está definida en la función", me podrías ayudar ?, gracias
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

Concatenar registros con un mismo ID

Publicado por Anonimo (3316 intervenciones) el 02/12/2023 02:44:54
La función que no localiza esta publicada en la respuesta de Norberto al principio del hilo, unas notas sobre ella.

La ha creado como publica en un modulo independiente (esto es: fuera del formulario o informe) de forma que pueda ser utilizada en cualquier parte

Así pues, si se tiene un modulo ya creado (con otras funciones), se añade el código y si no se dispone de ninguno crear uno nuevo y al ponerle un nombre al modulo que no sea el de la función (dejarle el que Access propone es una buena opción).

Dentro de ese modulo se añade el código publicado y la función deberá ser localizada sin problema y dar el resultado esperado..
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

Concatenar registros con un mismo ID

Publicado por Azahara (2 intervenciones) el 03/12/2023 20:28:58
Ya me funciona !!! , es muy necesario para mi trabajo, te lo agradezco, muy amable.
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