Possible Duplicate:
Combine rows in Access 2007
Access 2007 - Concatenate fields from one column in one table into a single, comma delmited value in another tableLa concatenación de múltiples filas en una sola línea en MS Access
Actualmente tengo una estructura de tabla que es algo como esto:
Nombre --- --- gatola descripción - - Thresh --- Perc --- Err --- BP
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- ADC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 2 ----- BAC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- RBE2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 8 ----- VBE2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 6 ----- AEC2
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0 ----- PBC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 1 ----- XBC4
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- AEC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- PBC2
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 3 ----- ADC2
Bob - ----- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- ADC2
Bob ---- --- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- BAC2
Joe ------ --C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- PBC2
Joe ---- ---- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- ZTM2
Joe-- ------ C1 ------- Inf --------- 7Per -------- 0.05 ------ 2 ----- QYC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- FLC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 1 ----- KSC2
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 --- --JYC2
Lo que quiero hacer es tener 1 línea por "Nombre" y por "Gato", que resumirá todos los "Err" (por "Nombre" y "Gato") y solo concatenará los campos "BP" en una sola línea. Tales como:
Nombre --- Cat --- la descripción --- Thresh --- Perc --- Err --- BP
Bob - ------ C1 ------- Inf -------- 7Per -------- 0.05 ----- 16 ----- BAC2, VBE2, AEC2
Bob ------- C2 ------ Com ------ 8Per -------- 0,45 ------ 4 ------ XBC4, ADC2
Joe -------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 3 ------ QYC2, KSC2
Se han formulado preguntas similares, pero parece que no puedo aplicarlo ya que mi conocimiento de las secuencias de comandos VBA es para principiantes. ¿Hay alguna manera de hacer todo esto a través de SQL? Si las secuencias de comandos de VBA son la única opción (es decir, crear una función), cualquier ayuda sería muy apreciada. Gracias de antemano.
Pregunta, parte 2:
Creé la función de acuerdo con la guía de Allen Browne. El módulo se guarda como modConcatRelated. Ahora, he tratado de ejecutar esta consulta (no estoy seguro si este es el SQL correcto para obtener el resultado que estoy buscando):.
SELECT
[Name],
[Cat],
[Desc],
[Thresh],
[Perc],
sum([Err]),
ConcatRelated("[BP]", "make_table_bp", "[Err] = " & [BP])
FROM make_table_bp
GROUP BY
[Name],
[Cat],
[Desc],
[Thresh],
[Perc],
[Err],
[BP];
Se dice "Error 3061. Muy pocos parámetros esperados 1. " También decía "Función no definida ConcatRelated". Estoy buscando una guía sobre cómo crear la declaración SQL correcta para que pueda llamar a la función ConcatRelated correctamente y obtener el resultado como se muestra arriba. Gracias de nuevo.
siguiente pregunta:
¿Y si la mesa tenía un campo de fecha única etiquetados como en la última columna de la tabla. Algo como esto:
Nombre --- --- gatola descripción --- --- ThreshPerc --- Err --- --- BPFecha
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 0- ---- ADC2--12/02/2011
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05- ---- -2 ----- BAC2-09/05/2011
Bob ------- C1 ------- Inf -------- 7Per ------- -0.05 ------ 0 ----- RBE2--11/02/2011
Bob ------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 8 ----- VBE2--08/14/2012
Bob ------- C1 ------- Inf-- ------ 7Per -------- 0.05 ------ 6 ----- AEC2--02/25/2009
Bob ------- C1 --- ---- Inf -------- 7Per -------- 0.05 ------ 0 ----- PBC2--07/02/2011
Bob ---- --- C2 ------- Com ------ 8Per -------- 0.45 ------ 1 ----- XBC4-09/05/2011
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 ----- AEC2--02/02/2010
Bob ------- C2 ------- Com ------ 8Per -------- 0,45 ------ 0 ----- PBC2--08/14/2012
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 3 ----- ADC2-- 05/05/2001
Bob ------- C2 ------- Com ------ 8Per -------- 0.45 ------ 0 --- --ADC2--08/02/2010
Bob ------- C2 ------- Com ------ 8Per -------- 0,45 ----- -0 ----- BAC2--06/17/2010
Joe -------- C1 ------- Inf --------- 7Per ----- --- 0.05 ------ 0 ----- PBC2--08/14/2012
Joe -------- C1 ------- Inf ------ --- 7Per -------- 0.05 ------ 0 ----- ZTM2-09/05/2011
Joe -------- C1 ----- --Inf --------- 7Per -------- 0.05 ------ 2 ----- QYC2--05/17/2010
Joe ----- --- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- FLC2--3/19/2010
Joe --- ----- C1 ------- Inf --------- 7Per -------- 0.05 ------ 1 ----- KSC2--09/05/2011
Joe -------- C1 ------- Inf --------- 7Per -------- 0.05 ------ 0 ----- JYC2--08/14/2012
Digamos que quería hacer una consulta para decir algo así como: muéstreme todos los registros aún dentro de este mismo formato:
Nombre --- Cat --- la descripción --- Thresh --- Perc --- Err --- BP
Bob ------ -C1 ------- Inf -------- 7Per -------- 0.05 ----- 16 ----- BAC2, VBE2, AEC2
Bob ------- C2 ------ Com ------ 8Per -------- 0,45 ------ 4 ------ XBC4, ADC2
Joe -------- C1 ------- Inf -------- 7Per -------- 0.05 ------ 3 ----- -QYC2, KSC2
Pero para un intervalo de fechas de 01/01/2009 hasta 09/31/2011
@HansUp podría ayudar con esto?
se necesita una función definida por el usuario de VBA para esto. Allen Browne ha proporcionado uno, junto con un ejemplo detallado sobre cómo usarlo. http://allenbrowne.com/func-concat.html – HansUp
ive siguió los pasos para compilar la función, pero ¿puede ayudarme a crear mi declaración de "selección" en función de lo que estoy buscando arriba? – JT2013
@HansUp utilicé el enlace al que se refería – JT2013