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


3 participantes

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  gumz 24/9/2014, 15:54

    Bom dia, amigos!

    Tenho uma consulta em uma Tabela de Referência Cruzada que me mostra a contagem de quantidades por status de cada registro. Porém, ele só me mostra os dados gerais, sem data - eu o chamo de resumo geral, da seguinte maneira: na coluna, as quantidades, e nas linhas, os status,  de maneira simplificada, da seguinte maneira:

    APROVADO: 50
    CANCELADO: 20
    EM PRODUÇÃO: 30

    TOTAL: 100


    Pretendo armazenar os dados por dia para poder montar um gráfico de linhas, por quantidades. Já faço isso no Excel manualmente, e é o que eu gostaria de automatizar no Access, fazendo da seguinte maneira:

    DATA     | APROVADO  |  CANCELADO | EM PRODUÇÃO
    12/09: 10 | 05 | 00
    13/09: 08 | 05 | 00
    14/09: 12 | 10 | 16
    15/09: 20 | 00 | 14



    Já pesquisei por aqui, tentei algumas consultas, mas não encontrei o termo certo que me sirva de exemplo para que eu possa encontrar a solução...

    Desde já, agradeço a todos que puderem me auxiliar de qualquer maneira!


    avatar
    silvrod
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 16/12/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  silvrod 25/9/2014, 13:17

    Bom Dia,

    E se você fizesse guardasse em uma tabelas as datas, e fizesse três linhas em um código de atualização dessa tabela, tendo como critério a data atual?

    Acredito que isso solucionaria seu problema.

    Rodrigo
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  gumz 25/9/2014, 13:36

    Bom dia, Rodrigo! Obrigado pela sugestão.

    Uma das ideias que me ocorreram seria criar uma coluna que armazenassem as datas como Chave Primária e colunas com os referidos "status".
    E então, a partir de um comando diário, automático ou não, eu fizesse a atualização copiando os dados da consulta (que calcula os totais) para a tabela de armazenamento.

    Baseado em sua sugestão, se a tabela de origem fosse uma tabela comum, eu saberia como copiar os dados de uma tabela a outra; mas como a origem é uma consulta de referência cruzada, não faço ideia ainda de como fazer essa cópia dos totais.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  Dilson 25/9/2014, 14:24

    Olá amigos,

    Uma saída é por sql contar e reunir o total de status agrupado por data e a partir daí varrer por recordset de uma tabela para a outra.

    O SQL para reunir o total de ocorrências de status por data:

    SELECT dataX, statusX, Count(Nz([statusX],0)) AS Total
    FROM SuaConsulta
    GROUP BY dataX, statusX;


    Coloque no criador de consultas em modo sql e veja se relaciona e agrupa o total por data. Se correr bem, podemos pensar no loop para transportar valores dela para a outra tabela de controle.
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  gumz 25/9/2014, 14:59

    Olá, Dilson! Você acabou me auxiliando em outra dúvida minha para outro problema que eu não havia encarado ainda.

    No seu ótimo exemplo, é como se eu já tivesse as datas de cada STATUS; realmente tenho outra tabela que solicita isto e ainda não gerei gráficos para tal. A minha intenção é gerar gráficos para poder analisar a evolução e andamento dos resultados captados pelo sistema.

    No seu exemplo, é como se fosse anotado, por exemplo, numa tabela de Histórico: "Aprovado | Data de Aprovação" ; daí cada usuário, a cada aprovação dos clientes, vai jogando no sistema a data de aprovação.

    A partir daí, o Status do registro muda, no caso, para APROVADO ou outra situação exigida. O que tenho hoje é a contagem de registros com os status no sistema em tempo real, sem registro de data.

    Pensei em captar a data de cada alteração nos STATUS e depois fazer a contagem por data. Mas, se por acaso, um registro for alterado mais de uma vez, na contagem final terei alguma discrepância, mesmo que mínima. A partir daí sim, poderei utilizar o exemplo, Dilson. O que você acha da armazenagem a cada alteração de status feita?
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  Dilson 25/9/2014, 15:20

    Essa mudança de status acontece em um único campo, ou seja, o campo possui três valores e somente um é aceito. Estou certo?

    Se eu estiver, acho que pode deixar os usuários mudarem o valor de status e data a hora que convir, pois a rotina de agrupamento para a formação da tabela de controle pode ser feita sempre que seja preciso, ou seja, todas as vezes que precisar saber a média diária de cada status, roda-se a rotina e monta-se os dados.
    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  gumz 25/9/2014, 15:54

    Na prática, há somente um campo em cada registro que define o status do mesmo;
    E uma tabela que salva os históricos conforme as situações diversas:

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada 1ffwx2


    Baseado no campo STATUS, tenho o seguinte relatório baseado na consulta de referência cruzada:
    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada 2wnqxxf


    Pensei em salvar um registro a cada mudança de status, só que alguns status podem se repetir, outros são únicos. Um cliente, por exemplo, pode fazer alteração várias vezes no dia e o registro se repetir, dando problema na contagem.


    avatar
    silvrod
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 16/12/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  silvrod 25/9/2014, 17:18

    Então, não sei se entendi certo, mais eu tenho algo parecido, e fiz da seguinte maneira.

    Tenho uma tabela que cai dos os registros que o usuário preenche no form;
    Tenho uma tabela com as datas (De hoje até 2050 por exemplo) e todos os "Status" que podem cair na tabela de registro geral;

    Depois tenho um código que rodo algumas instruções SQL fazendo um update na tabela "Relatório" sendo que meu critério é apenas a data, com isso minha tabela que tem todas as datas já é base do meu relatório. Que seria na mesma estrutura de uma ref. cruzada.

    Se você fizer um arquivo Bat e utilizar o agendador do windows essa atualização passa ser automática.

    Espero que seja mais ou menos isso.

    Rodrigo

    gumz
    gumz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 30/07/2011

    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  gumz 25/9/2014, 20:41

    Com a ajuda dos amigos do fórum, cada ideia leva à outra!

    Com o que eu tinha em mente, acabei encontrando a solução, sem código, ao menos para o problema inicial, que é armazenar os totais gerados pela tabela de referência cruzada:

    1 - Baseado na consulta de referência cruzada já pronta e que apresentava os totais, criei outra consulta de acréscimo que copia somente os STATUS e TOTAIS (lembrando que não há data registrada);

    2 - Criei uma nova tabela que armazena os dados copiados, com as seguintes colunas: STATUS, TOTAIS e DATA (esta coluna DATA, tem o valor padrão "Now()", que inserirá a data e hora em que o acréscimo foi feito, ou seja, quando a consulta for executada);

    3 - E baseado na nova tabela, criei outra consulta que faz novamente uma referência cruzada, tendo como linhas: as DATAS; e como colunas: os STATUS.

    A partir desta última consulta, tenho os dados que preciso armazenar, podendo gerar um gráfico no próprio Access ou exportar como uma planilha do Excel (que possui gráficos mais flexíveis).

    A minha última dúvida, que pretendo buscar solução posteriormente, é como fazer para que a consulta de adição insira somente um resultado por data, mas aí agora é outro caso, já que a consulta pode (ou deve) ser executada somente uma vez ao dia, num horário específico (ou não).


    Agradeço o auxílio dos amigos Rodrigo e Dilson pela atenção e disponibilidade na resolução de meu problema!

    Conteúdo patrocinado


    [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada Empty Re: [Resolvido]Armazenar totais por data gerada por Tabela de Referência Cruzada

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 05:10