MaximoAccess

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

Obrigado

Administração do MaximoAccess

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]Textos separado por virgula para linhas

    avatar
    davidapcon
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 23/10/2010

    [Resolvido]Textos separado por virgula para linhas Empty [Resolvido]Textos separado por virgula para linhas

    Mensagem  davidapcon em 3/12/2018, 13:56

    Olá pessoal!

    Eu tenho uma tabela que possui um campo onde há vários itens separado por vírgula.
    A minha intenção é a partir dessa tabela gerar uma outra que separe esses itens por linha.

    Por exemplo:

    1| 1. Análise RE, Sindicância, 8. Sindicância, Sindicância
    2| 1. Análise RE, Outros

    Para

    1| 1. Análise RE
    2| Sindicância
    3| 8. Sindicância
    4| Sindicância
    5| 1. Análise RE
    6| Outros

    É possível fazer isto através de uma consulta no Access? Eu tentei algumas coisas mais não tive sucesso =/

    Estou anexando o MDB com a tabela que contém a coluna com os dados separados por vírgula para ficar melhor o entendimento. O nome da coluna é "Categoria".

    Desde já agradeço!

    Att,
    David Consoli
    Anexos
    [Resolvido]Textos separado por virgula para linhas AttachmentNPS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 2 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2306
    Registrado : 22/11/2016

    [Resolvido]Textos separado por virgula para linhas Empty Re: [Resolvido]Textos separado por virgula para linhas

    Mensagem  DamascenoJr. em 3/12/2018, 17:03

    Estude e adapte ao seu cenário

    Código utilizado ao clicar num botão de um formulário
    Código:
    Dim rs As DAO.Recordset
        Dim k
        Dim i As Byte
       
        CurrentDb.Execute "delete * from temp_tblCategorias;"
       
        Set rs = CurrentDb.OpenRecordset("select categoria from Indenizados where trim(nz(categoria))<>'';", 8, 4)
        While Not rs.EOF
            k = Split(rs!categoria.Value, ",")
            For i = 0 To UBound(k)
                CurrentDb.Execute "insert into temp_tblCategorias values ('" & k(i) & "');"
            Next i
            rs.MoveNext
        Wend
        rs.Close: Set rs = Nothing
       
        DoCmd.OpenTable "temp_tblCategorias"
    Anexos
    [Resolvido]Textos separado por virgula para linhas AttachmentNPS_rev.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (69 Kb) Baixado 12 vez(es)
    avatar
    davidapcon
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 23/10/2010

    [Resolvido]Textos separado por virgula para linhas Empty Re: [Resolvido]Textos separado por virgula para linhas

    Mensagem  davidapcon em 4/12/2018, 13:07

    Opa Ivan!

    Primeiramente muito obrigado pela ajuda, é exatamente isto que eu estava tentando fazer.

    Eu tentei adicionar um novo campo da tabela para executar junto, porém esta dando o erro "Número de valores da consulta e campos de destinos não coincidem".

    Eu modifiquei as seguintes linhas do código:


    Private Sub Comando0_Click()

       Dim rs As DAO.Recordset
       Dim k
       Dim i As Byte
       
       CurrentDb.Execute "delete * from temp_tblCategorias;"
       
       Set rs = CurrentDb.OpenRecordset("select categoria, campanha from Indenizados where trim(nz(categoria))<>'';", 8, 4)
       While Not rs.EOF
           k = Split(rs!categoria.Value, ",")
           For i = 0 To UBound(k)
               CurrentDb.Execute "insert into temp_tblCategorias(categoria, campanha) values ('" & k(i) & "');"
           Next i
           rs.MoveNext
       Wend
       rs.Close: Set rs = Nothing
       
       DoCmd.OpenTable "temp_tblCategorias"

    End Sub


    E criei o campo campanha dentro da tabela temp_tblCategorias.

    Eu fiz umas pesquisas em códigos similares para fazer essas modificações, mas ainda assim não funcionou.
    Se puder me auxiliar nessa questão também ficarei muito agradecido.

    Obrigado!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2306
    Registrado : 22/11/2016

    [Resolvido]Textos separado por virgula para linhas Empty Re: [Resolvido]Textos separado por virgula para linhas

    Mensagem  DamascenoJr. em 4/12/2018, 13:44

    ...
    Set rs = CurrentDb.OpenRecordset("select categoria, campanha from Indenizados where trim(nz(categoria))<>'';", 8, 4)
    While Not rs.EOF
      k = Split(rs!categoria.Value, ",")
      For i = 0 To UBound(k)
         CurrentDb.Execute "insert into temp_tblCategorias( categoria, campanha) values ('" & k(i) & "', '" & rs!campanha & "');"
      Next i
      rs.MoveNext
    Wend
    rs.Close: Set rs = Nothing
    ...
    avatar
    davidapcon
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 23/10/2010

    [Resolvido]Textos separado por virgula para linhas Empty Re: [Resolvido]Textos separado por virgula para linhas

    Mensagem  davidapcon em 4/12/2018, 14:07

    Sem palavras para agradecer Ivan!

    O esquema das cores que você colocou deixou muito claro o entendimento do meu erro, com certeza um grande aprendizado para meus próximos trabalhos.

    Muito obrigado pela força!
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2306
    Registrado : 22/11/2016

    [Resolvido]Textos separado por virgula para linhas Empty Re: [Resolvido]Textos separado por virgula para linhas

    Mensagem  DamascenoJr. em 4/12/2018, 14:24

    Obrigado pelo retorno. O fórum agradece.

    Sucesso a você.

      Data/hora atual: 24/10/2020, 09:56