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


2 participantes

    [Resolvido]Juntar linhas

    avatar
    Dery_santos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 03/10/2016

    [Resolvido]Juntar linhas Empty [Resolvido]Juntar linhas

    Mensagem  Dery_santos 5/6/2018, 17:43

    Boa tarde para todos

    Desde ja agradeço antecipadamente a ajuda, eu tenho uma tabela com os seguintes campos ID - Seq - Descricao, oque ocorre é que não sei o motivo pelo qual a pessoa que criou o banco de dados
    em vez de colocar a descricao em uma unica linha ele dividiu em mais de uma linha.
    ai por exemplo eu tenho os registros :

    ID                                                   seq                                       descricao
    2011000000000007                           1                                     TROCADOR DE CALOR AR/AGUA, TEMPERATURA DE ENTRADA DO AR 60 GRC, TEMPERATURA DE SAIDA DO AR 40 GRC
    2011000000000007                           2                                      TEMPERATURA DE ENTRADA DA AGUA 28 GRC, TEMPERATURA DE SAIDA DA AGUA 33,4 GRC, VAZAO DE AR 10,25 M3/S,

    Oque ocorre é que esse numero de ID com a seq 2 seria a continuação da descrição  da seq 1, minha pergunta é teria como eu fazer uma consulta e quando tiver um numero de ID com mais de uma seq ele juntar a descrição em uma unica linha exemplo:


    ID                                                   seq                                       descricao
    2011000000000007                           1                                     TROCADOR DE CALOR AR/AGUA, TEMPERATURA DE ENTRADA DO AR 60 GRC, TEMPERATURA DE SAIDA DO AR 40 GRC TEMPERATURA DE ENTRADA DA AGUA 28 GRC, TEMPERATURA DE SAIDA DA AGUA 33,4 GRC, VAZAO DE AR 10,25 M3/S.

    Estou anexando parte da tabela com os registros
    Anexos
    [Resolvido]Juntar linhas AttachmentNovo(a) Microsoft Access Banco de Dados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (285 Kb) Baixado 18 vez(es)
    avatar
    Dery_santos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 03/10/2016

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Dery_santos 5/6/2018, 20:38

    eu tentei fazer assim

    Public Function fncAgrupadescricao(strID, strseq As String) As String
    Dim rs As DAO.Recordset
    Dim strSql$
    Dim strLista$

    strSql = "SELECT * FROM descricao WHERE [ID] ='" & strID & "' AND Seq ='" & strseq & "'"
    Set rs = CurrentDb.OpenRecordset(strSql)
    Do While Not rs.EOF
    strLista = strLista & " | " & rs!descricao
    rs.MoveNext
    Loop
    fncAgrupadescricao = strLista
    rs.Close
    Set rs = Nothing
    End Function

    e depois chamar a função fncAgrupadescricao em uma consulta , só que na hora que executo a consulta ele da erro de compatibilidade , acho que é o id e a seq.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Alexandre Neves 5/6/2018, 21:07

    Boa noite,
    O tamanho excede o permitido
    crie cópia da tabela e chame-a Descrição2, altere o campo Descrição para Texto Longo
    cole num módulo o código seguinte e execute-o
    Código:
    Sub JuntaLinhas()
        Dim Rst As DAO.Recordset, Rst2 As DAO.Recordset, strID As String, dblSeq As Double, strDescricao As String
        Set Rst = CurrentDb.OpenRecordset("SELECT * FROM Descrição ORDER BY ID, Seq")
        CurrentDb.Execute "DELETE * FROM Descrição2"
        Set Rst2 = CurrentDb.OpenRecordset("SELECT * FROM Descrição2")
        Do While Not Rst.EOF
            If Rst("ID") = strID Then
                strDescricao = strDescricao & Rst("Descricao")
            Else
                If Rst.AbsolutePosition > 0 Then
                    Rst2.AddNew
                    Rst2("ID") = strID
                    Rst2("Seq") = dblSeq
                    Rst2("Descricao") = strDescricao
                    Rst2.Update
                End If
                strID = Rst("ID")
                dblSeq = Rst("Seq")
                strDescricao = Rst("Descricao")
            End If
            Rst.MoveNext
        Loop
        Set Rst = Nothing
        Set Rst2 = 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
    avatar
    Dery_santos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 03/10/2016

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Dery_santos 6/6/2018, 11:39

    Alexandre Neves Bom dia , perfeito o código deu certo , mas deixa eu perguntar essa como faço pra deixar esse código executando automaticamente , pois assim essa tabela descrição vem do sql, e eu vou usar ela para alimentar outra tabela então precisaria que essa função fosse executada sempre antes de eu importar os dados para outra tabela, ou colocar para que seja executado em quando se abre uma consulta.


    Desde ja agradeço
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Alexandre Neves 7/6/2018, 09:36

    Bom dia,
    Para executar automaticamente, chame-a
    Call NomeDoProcedimento


    .................................................................................
    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
    Dery_santos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 03/10/2016

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Dery_santos 7/6/2018, 11:59

    Muito obrigado Alexandre Neves,
    avatar
    Dery_santos
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 03/10/2016

    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Dery_santos 27/12/2019, 14:11

    Bom dia,


    Estou precisando usar a função juntar linhas mas de uma forma diferente.
    Tenho uma consulta VBA excel com dados de uma tabela ACCESS
    Nessa consulta preciso que me traga os dados e agrupe eles e exporte para a coluna C linha 36 de uma planilha excel.

    Abaixo esta a consulta , tem como via vba mesmo eu colocar a função juntar linha ou exportar esses dados para um único campo no excel.?


    Workbooks.Open Filename:="C:\Users\e03066\Desktop\Nova pasta\Teste"
    Windows("Teste.xls").Activate

    Dim REGDIARIO As ADODB.Recordset
    Dim txt As Variant

    abreConexao

    ' filtros da consulta


    whereConsulta = " CHAVE = '" & formPrincipal.campoProcesso.Value & "'"

    ' carrega os iten



    Qsql = "SELECT CHAVE,CHAVE_COM, EVENTO, DATA, DESCRICAO, RA_sim_Nao FROM tb_diario_bordo_processo WHERE " & whereConsulta & "ORDER BY DATA "

    Set REGDIARIO = New ADODB.Recordset

    REGDIARIO.Open Qsql, CON, adOpenKeyset, adLockOptimistic

    Conteúdo patrocinado


    [Resolvido]Juntar linhas Empty Re: [Resolvido]Juntar linhas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 09:11