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]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado

    avatar
    welton311
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 23/01/2014

    [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado Empty [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado

    Mensagem  welton311 23/5/2018, 22:20

    Srs(a) Boa Noite a Todos!

    No Oracle SQL eu tenho algumas funções bacanas de splitar um campo e repetir as linhas para cada valor esplitado, exemplo:


    * Esta armazenado assim no Oracle:
    [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado V07azd10



    * Com a query abaixo eu Splito os codigos de clientes separado por virgula e coloco um codigo em cada linha:

    Código:

    SELECT A.DB_PENT_CODIGO                                                         AS COD,
      A.DB_PENT_DESCR                                                               AS DESCRICAO,
      A.DB_PENT_DATA_INI                                                            AS INICIO,
      A.DB_PENT_DATA_FIM                                                            AS FIM,
      TRIM(REGEXP_SUBSTR(A.DB_PENT_CLIENTES, '[^,]+', 1, CLIENTE.COLUMN_VALUE))     AS CLIENTES

    FROM
        DB_PREVISAO_ENT A,
        TABLE(CAST(MULTISET(SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= LENGTH(REGEXP_REPLACE(A.DB_PENT_CLIENTES, '[^,]+')) + 1) AS SYS.ODCINUMBERLIST)) CLIENTE
      
    WHERE A.DB_PENT_CODIGO = 113







    * E a consulta fica assim:
    [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado Eyizmw10



    Como eu faço isso no Access tendo em vista que a função acima é especifica do Oracle?


    Meus dados no Access estão armazenado assim:
    [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado Captur12



    Isso é possível no Access?
    A ideia é que a consulta retorne os dados para o Excel, então isso vai ficar numa query ODBC.


    Question


    Última edição por welton311 em 25/5/2018, 00:18, editado 3 vez(es) (Motivo da edição : Ortografia)
    avatar
    Ricardo Monteiro
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 50
    Registrado : 27/11/2017

    [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado Empty Re: [Resolvido]Fazer Split de um campo contendo virgula (,) - E criar uma linha para cada valor Splitado

    Mensagem  Ricardo Monteiro 25/5/2018, 16:54

    O caminho que conheço é via VBA, não sei se existe alguma fórmula pronta.

    Passos antes do código

    Criar a consulta
    Criar um formulário para essa consulta.
    Criar um formulário em branco, adicionar um botão ao formulário e um código ao botão no evento clicar.

    Passos no código do botão no formulário em branco.

    1. executar a consulta
    2. abrir o formulário da consulta
    3. Criar objeto Excel
    4. definir o Excel como uma pasta de trabalho existente ou como um novo arquivo excel
    5. referenciar as células do excel com os campos
    6. executar a opção Texto para Colunas do excel com o separador ","
    7. para cada célula criada fazer a célula(linha+1,coluna)=célula(linha,coluna+1)
    8. fechar a consulta
    9. fechar o formulário da consulta
    10. Adicionar o laço de repetição para rodar todos os registros da consulta.
    11. definir o objeto excel = nothing

      Data/hora atual: 22/11/2024, 03:49