MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

    [Resolvido]Concatenar registros em relatório agrupado

    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Concatenar registros em relatório agrupado Empty [Resolvido]Concatenar registros em relatório agrupado

    Mensagem  Lu Kobe 7/7/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
    daniloreiis
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Concatenar registros em relatório agrupado Empty Concatenar registros em relatório agrupado

    Mensagem  daniloreiis 7/7/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
    -------------------------------------------------------------------------------------------------------------------------------------------------

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 7/7/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
    daniloreiis
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Concatenar registros em relatório agrupado Empty Concatenar registros em relatório agrupado

    Mensagem  daniloreiis 7/7/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
    -------------------------------------------------------------------------------------------------------------------------------------------------

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 7/7/2014, 19:39

    Segue o arquivo.
    Obrigda, Danilo!
     Very Happy
    Anexos
    [Resolvido]Concatenar registros em relatório agrupado AttachmentAutoAvaliação.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (84 Kb) Baixado 27 vez(es)
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 10/7/2014, 13:15

    Nadinha, Danilo??
     pale 
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 10/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 10/7/2014, 14:24

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

    Abs,
    Luciana.
    Anexos
    [Resolvido]Concatenar registros em relatório agrupado AttachmentDatabase1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (96 Kb) Baixado 20 vez(es)
    daniloreiis
    daniloreiis
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Concatenar registros em relatório agrupado Empty Concatenar registros em relatório agrupado

    Mensagem  daniloreiis 10/7/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
    -------------------------------------------------------------------------------------------------------------------------------------------------

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 10/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 18/7/2014, 20:02

    Nadinha??? Ninguém????  Neutral 
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 18/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 21/7/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
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 21/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 21/7/2014, 18:42

    Não... Os filtros são os controles do cabeçalho.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 21/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 21/7/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
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 21/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 21/7/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
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 21/7/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
    avatar
    Lu Kobe
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Lu Kobe 22/7/2014, 17:33

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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:06