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

    [Resolvido]Linha de dados em consulta

    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty [Resolvido]Linha de dados em consulta

    Mensagem  julianovv 28/2/2021, 22:44

    Boa noite. Tenho uma consulta de atas e gostaria de criar um relatório a partir dela sendo que no texto concatenado entraria uma lista de nomes que fosse exibida em uma única linha separada por vírgulas. Um exemplo básico seria:

    Cód. Nome
    1 Maria Laura
    2 Andrea Pereira
    3 João Marques

    O resultado seria: Maria Laura, Andrea Pereira, João Marques


    Pesquisei bastante e só encontrei esse código abaixo que está dando erro de sintaxe (na linha realçada em vermelho) e não encontro o erro.

    Dim DB As Database, RS As Recordset
    Set DB = CurrentDb()
    Set RS = DB.OpenRecordset("Cst_AtasDeAssembleias" dbOpenTable)
    RS.MoveFirst
    Do While Not RS.EOF

    With RS
    If IsNull(Me.txNome) Or Me.txNome = "" Then
    Me.txNome = RS("cond_presentes")
    Else
    Me.txNome = Me.txNome & "," & RS("cond_presentes")
    End If
    .MoveNext
    End With
    Loop

    Set DB = Nothing
    Set RS = Nothing
    RS.Close
    DB.Close
    End Sub

    Qualquer luz é bem vinda!

    pale
    Anexos
    [Resolvido]Linha de dados em consulta AttachmentErro de sintaxe.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (41 Kb) Baixado 1 vez(es)


    Última edição por julianovv em 8/3/2021, 16:17, editado 1 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Linha de dados em consulta Empty Re: [Resolvido]Linha de dados em consulta

    Mensagem  Alexandre Neves 1/3/2021, 12:14

    Bom dia

    Código:
    Sub JuntaNomes()
        '--------------------------------------------------------------'
        '  código criado por Alexandre Neves, do Fórum MaximoAccess  '
        '    utilize o código livremente mas mantenha os créditos    '
        '--------------------------------------------------------------'
        Dim Rs As dao.Recordset
        Set Rs = CurrentDb.OpenRecordset("SELECT * FROM Cst_AtasDeAssembleias")
        txNome = Null
        Do Until Rs.EOF
            If Len("" & txNome) = 0 Then
                txNome = Rs("cond_presentes")
            Else
                txNome = txNome & "," & Rs("cond_presentes")
            End If
            Rs.MoveNext
        Loop
        Set Rs = Nothing
    End Sub


    .................................................................................
    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

    julianovv gosta desta mensagem

    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty Re: Linha de dados em consulta

    Mensagem  julianovv 1/3/2021, 14:42

    Obrigado Alexandre. Deu quase certo. Entraram os códigos ao invés dos nomes. Refiz a consulta para simplificar pois ela tem filtros (o usuário escolhe um nome na lista) e deu certo mas no modo básico, ou seja, todos os nomes da tabela - o que não é o que procuro.
    O objetivo é criar um "assistente de atas" para inserir os textos e os nomes dos condôminos presentes e os ausentes e a partir daí gerar um relatório com campos concatenados e os nomes em linhas separados com vírgula, como é mostrado no relatório que segue na versão compacta.

    Segue a versão reduzida. O Access é o 2007.

    Obrigado!

    Wink
    Anexos
    [Resolvido]Linha de dados em consulta AttachmentAtas de Assembleia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (34 Kb) Baixado 3 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    [Resolvido]Linha de dados em consulta Empty Re: [Resolvido]Linha de dados em consulta

    Mensagem  Noobezinho 1/3/2021, 14:56

    Juliano

    Não abri teu aplicativo.

    Só vi que na frase em vermelho do código que postou, faltou a virgula entre   "Cst_AtasDeAssembleias" e dbOpenTable

    Portanto,

    Set RS = DB.OpenRecordset("Cst_AtasDeAssembleias", dbOpenTable)

    Se quiser testar o código novamente

    { }'s

    Balem


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    julianovv gosta desta mensagem

    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty Re: Linha de dados em consulta

    Mensagem  julianovv 1/3/2021, 17:13

    Obrigado mas deu erro na mesma linha!

    Wink
    Anexos
    [Resolvido]Linha de dados em consulta AttachmentErro de sintaxe1.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (35 Kb) Baixado 1 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Linha de dados em consulta Empty Re: [Resolvido]Linha de dados em consulta

    Mensagem  Alexandre Fim 2/3/2021, 00:51

    Noobezinho e Alexandre Neves,

    Fiz uma alteração nas consultas, utilizando o seguinte relacionamento:

    [Resolvido]Linha de dados em consulta Ausent10

    Com isso, eu peguei o NOME do condônimo.

    Esse é o problema de usar o VBA em campos de tabela que, visualmente, traz o nome, mas na verdade é o código.
    Por isso estava trazendo só o código.
    [Resolvido]Linha de dados em consulta Condom10


    Segue banco de dados atualizado.

    Abraços
    Anexos
    [Resolvido]Linha de dados em consulta AttachmentAtas de Assembleia_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (61 Kb) Baixado 5 vez(es)


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    julianovv gosta desta mensagem

    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty Re: Linha de dados em consulta

    Mensagem  julianovv 2/3/2021, 11:12

    Obrigado Alexandre. Os erros que tem dado são basicamente sobre a complexidade da consulta. Ela contém textos concatenados e nome dos condôminos que são escolhidos em lista e parece que isso tem pesado no resultado. Fiz o teste somente com uma consulta simples e não deu erro. Simplificar não tem jeito porque o relatório precisa do texto concatenado junto com os nomes.
    Outro problema que encontrei foi que o código só pode ser usado em formulários e acaba sobrecarregando o sistema porque será preciso criar relatórios pra cada resultado e esse formato é meio limitado pois a caixa de texto não ajusta no relatório e isso causaria espaçamento entre os textos. Uma expressão de consulta usando o construtor de expressão seria a solução.
    Um outro problema que vou encontrar no caminho é como vou concatenar o texto da consulta com os sub-relatórios para formar uma sequência única e não dar resultado separado.
    Vou tentando aqui.
    Obrigado!

    Wink


    Última edição por julianovv em 2/3/2021, 12:14, editado 1 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Linha de dados em consulta Empty Re: [Resolvido]Linha de dados em consulta

    Mensagem  Alexandre Fim 2/3/2021, 12:13

    Juliano bom dia,

    Como vc queria o relatório?
    Vc quer o nome dos condôminos concatenados ao texto?

    Informe aqui para que possamos ajudar nesta demanda.

    Abraço


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    julianovv gosta desta mensagem

    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty Re: Linha de dados em consulta

    Mensagem  julianovv 2/3/2021, 12:17

    Sim, como disse na resposta acima, preciso concatenar os textos da consulta com os nomes para formar um parágrafo no relatório. Vou precisar alterar a tabela inserindo o gênero também para criar nos nomes com "Sr." e "Sra.". Não vão poder entrar sem uma forma de tratamento.

    Wink


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile
    julianovv
    julianovv
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 632
    Registrado : 14/12/2010

    [Resolvido]Linha de dados em consulta Empty Re: Linha de dados em consulta

    Mensagem  julianovv 8/3/2021, 16:15

    Bom dia Alexandre Fim. Consegui fazer funcionar o código e deu certo a formatação mas na hora de integrá-lo ao texto no relatório não funcionou nem com reza. Tive de voltar atrás e fazer diferente criando listas. Não era o que eu procurava mas não teve outra solução.
    Segue a nova versão.



    Obrigado!

    Wink
    Anexos
    [Resolvido]Linha de dados em consulta AttachmentAtas de Assembleia_v3.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (64 Kb) Baixado 4 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP Professional SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - LG Led LCD 20M35PD - Impressora Epson T33 - Scanner Bright.
    Smile

      Data/hora atual: 16/6/2021, 20:58