locked
Atualização de tabela dinamica com critério RRS feed

  • Pergunta

  • Utilizo a tabela dinamica vinculada com um BD ORACLE. Essa base de dados tem 400.000 registros.
     
    Diariamente preciso atualizar os dados. Essa base tem registros de Janeiro até o dia anterior, é o resultado da empresa inteira.
     
    Quando atualizo demora muito, pois atualiza desde Janeiro. Preciso atualizar somente o mes atual.
     
    Por exemplo.
     
    Ao clicar em Atualiza os dados, ou em uma macro com essa função, a tabela dinamica iria atualizar somente os registros referentes ao mes atual e não os 400.000 desde janeiro.
     
    Seria uma atualização da tabela dinamica com filtro, porém mantendo o historico.
    terça-feira, 3 de julho de 2007 21:52

Todas as Respostas

  • Colega,

     

    A medida que voce arrasta os campos para a tabela dinamica voce cria estes filtros. Se mesmo assim não der certo, no momento de conectar o banco executa filtros SQL e faça o teste.

     

    att.

     

    Figueira

     

    ^^

    quinta-feira, 5 de julho de 2007 20:01
  • Entao cara, acontece que os filtros não podem ser aplicados no momento em que estou arrastando ou fazendo a conexão. Preciso atualizar a tabela somente o mes atual por exemplo. Se eu fizer isso na conexão terei somente os registros do mes atual e nao do historico. Preciso atualizar somente o mes atual e manter o historico. Imagino que essa atualização seja feita na tabela dinamica com algum criterio no VBA, ou algo parecido.

     

    Bom é isso.

     

    Valeu

    terça-feira, 10 de julho de 2007 16:54
  • Quando voce vai criar a tabela dinamica no final do processo, o excel perguntará para o que voce gostaria de fazer a seguir?

    Selecione:

     

    Exibir dados ou editar consulta no Microsoft Query

     

    e la voce aplica os filtros necessarios

     

    flw!

     

    Figueira

     

    ^^

     

    terça-feira, 10 de julho de 2007 17:02
  • Muito obrigado pela atenção, mas acho que não me expressei direito. Vou explicar melhor.

     

    Tenho uma base de 400.000 registros e criei uma tabela dinamica sobre essa massa de dados. Esses registros são ref a todo o historico do ano de 2007, sendo que os meses anteriores ao mes atual não precisam ser atualizados na tabela dinamica. O que deve ser atualizado na tabela dinamica, nesse caso, seria somente o mes atual e nao todos os 400.000.

     

    Do jeito que vc comentou a tabela dinamica ficaria somente com os registros filtrados e historico sumiria.

     

    Resumindo, preciso de uma solução onde na atualização se mantenha o historico e atualize somente o mes atual por exemplo.

     

    Valeu

    quarta-feira, 11 de julho de 2007 16:24
  • Quando voce montar a tabela, ficara com os campos dispostos a criar os filtros, na medida que a base de dados for atualizada as informações ficarão disponíveis e não será alterado o conteudo do que ja existe.

     

    Aqui eu tambem tenho uma situação desta e quando vira o mes basta clicar no botão de atualizar dados e pronto, ja é adicionado a informação que falta sem perder o historico anterior, vai sendo gradativo.

     

    ^^

     

     

    quarta-feira, 11 de julho de 2007 17:15
  • Cara imagine a seguinte situação: a base tem 400.000 registros certo? Se eu atualizar isso diariamente, leva muito tempo, ja que a base esta no oracle. O que preciso é atualizar somente o mes atual mantendo o historico. Sei o que vc sugiriu existe, mas para o que preciso nao serve. Vc entendeu? Na atualização nao precisa passar pelos 400.000, somente pelos 10.000 (exemplo) do mes atual.

     

    Valeu

    quarta-feira, 11 de julho de 2007 19:53
  •  

    Agora entendi, voce quer ler os dados do mes mas sem ter que reconstruir a tabela dinamica e passar pelos 400 e tralala registros novamente?

     

    ^^

     

     

     

    quarta-feira, 11 de julho de 2007 20:02
  • Isso mesmo cara. Tem como fazer?
    quinta-feira, 12 de julho de 2007 12:26
  • Bom dia,

     

    Agora o post servirá para mim tambem pois tenho um caso aqui que o usuario não consegue carregar a planilha pelo excesso de dados.

    Estou em busca de uma solução tambem.

     

    Assim que encontrar eu coloco aqui no forum.

     

    ^^

    quinta-feira, 12 de julho de 2007 12:41
  • Valeu cara.
    quinta-feira, 12 de julho de 2007 14:21
  • Apesar de várias pesquisas, também não encontrei solução. Estou passando pelo mesmo problema, se por acaso você souber da solução me informa, por favor. Envie a resposta para wilsongomesjunior@yahoo.com.br.

     

    Desde já, Obrigado.

     

    terça-feira, 8 de janeiro de 2008 17:32
  • Utilize o editor Microsoft QUERY e faça a instrução SQL que retorne os dados que voce precisa.


    Este post foi útil? - Marque-o! ^^
    terça-feira, 4 de janeiro de 2011 11:34
  • Colega, para resolver o seu problema vc precisa mudar a sentença SQL que faz a consulta ao banco de dados Oracle. 


    Essa sentença pode ter sido montada pelo MS Query ou pode ter sido feita na unha por alguém. Presumindo que vc nunca ouviu falar de SQL alguém fez ela para vc.

    Deve existir algum campo na tabela do oracle que contém a data que vc quer filtrar, por exemplo a data de emissão da fatura, ou seja lá qual for a data.

    Na sentença SQL vc deverá adicionar uma condição na cláusula WHERE ... algo assim

    Select lista de campos from tabelas (podem ter várias) where condicao tal and condicao tal and condicao tal and DATAdenumseique >= data_inicial_desejada

     

    Isso irá diminuir a quantidade de registros que o Oracle irá processar e trazer para o Excel, diminuindo consideravelmente o tempo para montar a tabela dinamica.

     

    Qualquer coisa que filtre DEPOIS do SQL ser executado só diminuirá o tamanho da tabela dinamica mas não vai diminuir o esforço do Oracle, portanto, continuará lento.

    Tente obter o comando SQL associado a essa consulta, poste ele aqui e vamos tentar dar uma olhada nele para achar uma forma de otimizá-lo.

     

     


    João Eurico Consultor Manguetown - Brazil
    terça-feira, 4 de janeiro de 2011 12:55