MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Concatenar registros em relatório agrupado

    Compartilhe

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 07 Jul 2014, 18:42

    Prezados, boa tarde!

    Já busquei aqui o código para concatenar registros, o que me ajudou bastante!
    Já vi também como aplicar filtro ao recordset, no código para concatenar registros...
    Mas tenho uma questão que vai um pouco mais além do código já apresentado aqui:

    Goataria de concatenar registros utilizando os filtros de um relatório com dados agrupados, ou seja, concatenar os campos "detalhe" do relatório, conforme os filtros dos campos de "cabeçalho de agrupamento" do relatório.

    Apliquei este código no evento "Ao carregar" do relatório:

    Dim Rs As Recordset
    Set Rs = CurrentDb().OpenRecordset("SELECT * FROM C001 WHERE grup1 = '" & Me.grup1 & "' AND grup2 = " & Me.grup2 & "")

    Rs.MoveFirst
    Do While Not Rs.EOF
    With Rs

    If Me.Texto0 = "" Then
    Me.Texto0 = Rs("DR")
    Else
    Me.Texto0 = Me.Texto0 & "; " & Rs("DR")
    End If

    .MoveNext
    End With
    Loop
    Set Rs = Nothing

    Onde:
    C001 = Consulta com os registros a serem concatenados, com os seguintes dados: grup1 / grup2 / DR.
    grup1 e grup2 = dados dos registros, na consulta C001, que determinam os agrupamentos no relatório.
    Me.grup1 e Me.grup2 = campos do relatório, nos cabeçalhos de agrupamento.
    Texto0 = Caixa de texto não acoplado, na aba “detalhes” do relatório, onde desejo salvar os registros concatenados.
    DR = Campo da consulta C001 que desejo concatenar no relatório.

    O código funciona, mas só me retorna os dados concatenados das DRs do primeiro filtro de grup1 e grup2...
    Tem como fazer esses filtros serem dinâmicos??  Question  Question 

    Abraço!

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Concatenar registros em relatório agrupado

    Mensagem  daniloreiis em Seg 07 Jul 2014, 18:49

    boa tarde! se eu entendi você gostaria de retornar os dois filtros.
    então use a condição de "OR"
    neste ponto do seu código:


    Dim Rs As Recordset
    Set Rs = CurrentDb().OpenRecordset("SELECT * FROM C001 WHERE grup1 = '" & Me.grup1 & "' OR grup2 = " & Me.grup2 & "")

    abraços


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 07 Jul 2014, 19:13

    Oi, Danilo!

    Não é isso não!! Eu preciso dos dois filtros juntos! A condição "AND" está ok!
    O problema é que o código me retorna somente os filtros iniciais... Vou ver se consigo demonstrar aqui:

    Dados da consulta C001:
    grup1 grup2 DR
    A 1 DR1
    A 1 DR2
    A 2 DR1
    A 2 DR3
    B 1 DR2
    B 1 DR4
    B 2 DR3
    B 2 DR5

    Nesse caso, temos 4 agrupamentos, e eu preciso que o código me retorne a concatenação desses 4 agrupamentos, assim:

    Agrupamento A-1 Concatenar DR1 e DR2
    Agrupamento A-2 Concatenar DR1 e DR3
    Agrupamento B-1 Concatenar DR2 e DR4
    Agrupamento B-2 Concatenar DR3 e DR5

    O código está retornando os dados concatenados só do agrupamento A-1, repetidamente, na caixa de texto "Texto0", em todas as abas “detalhes” do relatório.

    Espero ter esclarecido melhor!
    Abs.

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Concatenar registros em relatório agrupado

    Mensagem  daniloreiis em Seg 07 Jul 2014, 19:18

    olá acho que entendi o que precisa, você pode disponibilizar seu projeto, vou fazer um teste aqui e veremos o resultado!
    abraços


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 07 Jul 2014, 19:39

    Segue o arquivo.
    Obrigda, Danilo!
     Very Happy
    Anexos
    AutoAvaliação.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (84 Kb) Baixado 19 vez(es)

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Qui 10 Jul 2014, 13:15

    Nadinha, Danilo??
     pale 

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Qui 10 Jul 2014, 13:51

    Está em formato não reconhecido. Coloque em 2003, por exemplo


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Qui 10 Jul 2014, 14:24

    Encaminhei um arquivo do Access 2010...
    Segue o mesmo arquivo na versão 2003!

    Abs,
    Luciana.
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (96 Kb) Baixado 17 vez(es)

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Concatenar registros em relatório agrupado

    Mensagem  daniloreiis em Qui 10 Jul 2014, 14:31

    Bom dia Luciana!

    eu baixei seu projeto porém não entendi pelo exemplo que me passou onde esta as concatenações para serem feitas, fiquei com duvidas

    poderia explicar melhor ?

    me perdi aqui não achei onde você gostaria de aplicar estas condições:

    Código:

    Agrupamento A-1 Concatenar DR1 e DR2
    Agrupamento A-2 Concatenar DR1 e DR3
    Agrupamento B-1 Concatenar DR2 e DR4
    Agrupamento B-2 Concatenar DR3 e DR5



    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Qui 10 Jul 2014, 15:02

    Oi, Danilo!
    Começei o tópico utilizando "dados fictícios"! Desculpe por isso!
    Vou explicar a idéia do banco:
    Será um banco para consolidar avaliações de várias DRs (sigla nossa para regionais!)
    A avaliação será feita por meio de 156 afirmativas, que serão respondidas com valores percentuais de adequação.
    Essas 156 afirmativas (tabela 003afirm) são agrupadas em 23 itens (tabela 002item), que são agrupados em 8 critérios (tab001crit)
    Então, a tabela tabgeral será a consolidadora... nela terei as avaliações das 156 afirmativas para as 28 DRs, totalizando 4.368 registros!
    (no banco que enviei para vocês, incluí teste de avaliação de duas DRs)

    A consulta C001 calcula os valores percentuais das avaliações para cada DR em cada afirmativa e define um valor de texto no campo "aval":
    - Ainda não avaliado = XX
    - % igual ou acima de 40% = PF
    - % abaixo de 40% = OM

    No relatório, que é onde quero concatenar os dados, é apresentada a quantidade de avaliações "OM" e "PF" para cada afirmativa. Até aí está pronto!
    O que quero é que abaixo de cada afirmativa, no relatório, sejam apresentadas quais as DRs tiveram avaliação "OM" e quais as DRs tiveram avaliação "PF".
    Aí está o problema! A concatenação que codifiquei no evento "ao carregar" do relatório só me mostra a concatenação das DRs que tiveram avaliação "OM", na caixa de texto "Texto42", na primeira afirmativa... e repete esse valor para todas as demais afirmativas...

    Resumo da ópera: São 156 agrupamentos (a qtde de afirmativas), para concatenar a relação de DRs para cada situação da avaliação (OM ou PF).
    A idéia é fazer o código duas vezes: Concatenar as DRs que obtiveram resultado "OM" e concatenar as DRs que obtiveram resultado "PF", mas tendo a solução para uma concatenação, a outra já está pronta!!
    Ufa! Espero ter conseguido me explicar melhor!!
    Smile

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Sex 18 Jul 2014, 20:02

    Nadinha??? Ninguém????  Neutral 

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Sex 18 Jul 2014, 21:43

    Boa noite,
    Não entendi bem o que pretende, mas parece-me que o que precisa é de ter o código na formatação do detalhe


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 21 Jul 2014, 17:53

    Oi, Alexandre.
    Tentei passar o código para um campo no detalhe do relatório, e a mesma situação permanece.
    O problema do meu código, creio eu, é que o filtro está na abertura do Recordset, então o Recordset é criado somente com o filtro do primeiro agrupamento do meu relatório, por isso que, em cada cabeçalho de agrupamento do relatório, a concatenação se repete com as informações somente do primeiro grupamento.
    Segue o código novamente:
    _______________________________________________
    Private Sub Report_Load()

    Me.Texto42 = ""

    Dim Rs As Recordset
    Set Rs = CurrentDb().OpenRecordset("SELECT * FROM C001 WHERE itemn = '" & Me.itemn & "' AND afirmn = " & Me.afirmn & " AND aval = 'OM'")

    Rs.MoveFirst
    Do While Not Rs.EOF
    With Rs

    If Me.Texto42 = "" Then
    Me.Texto42 = Rs("DR")
    Else
    Me.Texto42 = Me.Texto42 & "; " & Rs("DR")
    End If

    .MoveNext
    End With
    Loop
    Set Rs = Nothing

    End Sub
    ____________________________________________________________

    Acho que, pra dar certo o que pretendo, precisaria filtrar o recordset para cada um dos 156 grupamentos, ou abrir um recordset para cada um deles, o que nem sei se é possível.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Seg 21 Jul 2014, 18:22

    Boa tarde,
    Mas quer filtrar por algum controlo do detalhe??


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 21 Jul 2014, 18:42

    Não... Os filtros são os controles do cabeçalho.

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Seg 21 Jul 2014, 19:08

    Se os filtros estão no cabeçalho, enquanto mantém o cabeçalho mantém o filtro e os dados manter-se-ão


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 21 Jul 2014, 19:41

    Ui!! Acho que a gente tomou outra direção aqui!! Hehehe   Razz 
    Vou tentar simplificar o meu problema...

    Você chegou a ver o relatório do bd que eu anexei aqui??
    O que preciso é que o controle (do cabeçalho) "Texto42" apresente os valores concatenados do controle (do detalhe) "Texto43", quando este não está vazio.

    O código que inseri no evento "carregar relatório" está concatenando os registros, mas só do primeiro cabeçalho, e a concatenação está se repetindo, em todos os demais cabeçalhos, com as informações do 1º cabeçalho... É isso que não consigo resolver!

    Wink

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Seg 21 Jul 2014, 20:03

    Não vejo Texto43 aparecer


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Seg 21 Jul 2014, 20:16

    A seção "detalhe" do relatório está formatada para ficar invisível.
    Se vc alterar o formato "Visível" para "Sim", vc conseguirá ver os campos do detalhe.
    Wink

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5889
    Registrado : 05/11/2009

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Alexandre Neves em Seg 21 Jul 2014, 21:48

    1 - coloque controlo no CabeçalhoDoGrupo4, chame-o TxtItemn
    2 - coloque AoFormatar o CabeçalhoDoGrupo4
    Me.Texto42 = ""

    Dim Rs As Recordset
    Set Rs = CurrentDb.OpenRecordset("SELECT * FROM C001 WHERE itemn = '" & Me.TxtItemn & "' AND afirmn = " & Me.afirmn & " AND aval = 'OM'")
    If Rs.RecordCount > 0 Then Rs.MoveFirst
    Do While Not Rs.EOF
    With Rs

    If Me.Texto42 = "" Then
    Me.Texto42 = Rs("DR")
    Else
    Me.Texto42 = Me.Texto42 & "; " & Rs("DR")
    End If

    .MoveNext
    End With
    Loop
    Set Rs = Nothing


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe em Ter 22 Jul 2014, 17:33

    Deu certo, Alexandre!!!!
    Muito obrigada!
     cheers 

      Data/hora atual: Ter 06 Dez 2016, 05:46