MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

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

    Compartilhe

    welton311
    Novato
    Novato

    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

    Mensagem  welton311 em 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:
    [Você precisa estar registrado e conectado para ver esta imagem.]



    * 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:
    [Você precisa estar registrado e conectado para ver esta imagem.]



    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:
    [Você precisa estar registrado e conectado para ver esta imagem.]



    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) (Razão : Ortografia)

    Ricardo Monteiro
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Ricardo Monteiro em 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: 15/11/2018, 04:45